BufferedWriter和BufferedReader的使用
1.BufferedReader的read使用
1.会出现缺字符的现象
BufferedReader reader = new BufferedReader(new FileReader(file));
// 会出现缺字符的现象
while (reader.read() != -1) {
System.out.println(reader.readLine());
}
2.解决办法
// 读取文件没有缺字符的情况
BufferedReader reader = new BufferedReader(new FileReader(file));
String readLine;
while ((readLine = reader.readLine()) != null) {
//获取试题内容的首行
readLine = new String(readLine.getBytes(), "utf-8");
System.out.println(readLine);
}
2.FileUtil 工具
package com.sys;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
public class FileUtil {
static String filePath = "data/test.txt";
// 读取文件
public static void readFile() {
File file = new File(filePath);
try {
// 读取文件没有缺字符的情况
BufferedReader reader = new BufferedReader(new FileReader(file));
String readLine;
while ((readLine = reader.readLine()) != null) {
//获取试题内容的首行
readLine = new String(readLine.getBytes(), "utf-8");
System.out.println(readLine);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 写入文件
public static void writeTxt(String strTxt) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath, true)));
//清空
FileWriter fileWriter = new FileWriter(filePath);
fileWriter.write("");
fileWriter.flush();
fileWriter.close();
//开始写入
out.write(strTxt);
out.newLine();
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}