在使用Java的BufferedReader读取文件的每一行时出现中文乱码
使用过new BufferedReader(new InputStreamReader(new FileInputStream(“D:/CascadeUAS–2020-05-20-00-00-04.log”), “utf-8”));依旧乱码,经过反复测试,将utf-8改成GB2312即可:
代码如下:
BufferedReader br = null;
PrintWriter pw = null;
String str = null;
Integer i = 0;
try {
//读取log文件
br = new BufferedReader(new InputStreamReader(new FileInputStream("D:/CascadeUAS--2020-05-20-00-00-04.log"), "GB2312"));
//写入
//pw = new PrintWriter(new FileWriter("D:/123.txt"), true);
while ((str = br.readLine()) != null) {
//记录行号
i++;
//查找改行有没有收到视频云平台的心跳请求的字符,如果有,将行号写入txt中
if (str.indexOf("收到视频云平台的心跳请求") != -1) {
pw.println(i + str);
}
}
// System.out.println("文件已写入txt文本中");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
pw.flush();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}