1、按照字符流的方式读取文件内容
/**
* 按照字符流的方式读取文件内容
* <p>
* Step 1.根据文件路径,构建文件对象
* Step 2.创建字符输入流读取文件内容
* Step 3.创建字符数组来存放读取内容
* Step 4.关闭读取文件的字符输入流
*
* @return
*/
public static void readFileByFileReader(String path) {
System.out.println("=== 字符流读取 开始 ===");
// 根据路径拿到文件对象
File file = new File(path);
// 初始化字符输入流
Reader fileReader = null;
try {
// 创建一个文件字符输入流与源文件接通
fileReader = new FileReader(file);
// 初始化存放读取内容的字符数组
char[] buffer = new char[100];
// 定义读取到字符长度
int len;
while ((len = fileReader.read(buffer)) != -1) {
// 一次读取一个字符数组长度的字符串
fileReader.read(buffer,0,len);
System.out.println("本次读取" + len + "个字节数据内容为:" + new String(buffer, 0, len));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally { // 关闭流过程,也有可能出现异常
try {
if (fileReader != null) fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("=== 字符流读取 结束 ===");
}
2、通过字符流的方式写入信息到文件
/**
* 通过字符流的方式写入信息到文件
* <p>
* Step 1.根据文件路径,构建文件对象
* Step 2.创建字符输出流写出信息到文件
* Step 3.构造待写出的内容,并转为字符数组
* Step 4.关闭读取文件的字符输出流
*/
public static void writeFileByFileWriter(String path) {
System.out.println("=== 字符流写入文件 Start ===");
// 创建写出文件
File file = new File(path);
// 初始化字符输出流
Writer fileWriter = null;
String strInfo = "字符写出数据tangjian";
try {
// 创建输出字符流
fileWriter = new FileWriter(file);
// 写出内容
fileWriter.write(strInfo);
System.out.println("按照字符流成功写出内容:" + strInfo);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {// 关闭写出流时,注意抓异常
try {
if (fileWriter != null) fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("=== 字符流写入文件 End ===");
}