Java 按行读取文件:BufferedReader、Files.lines 与字符编码
· 阅读需 1 分钟
这篇文章让我们来看看java是如何一行行读取文件的
看代码:
按行读取适合处理日志和大文本,可避免一次性加载全部内容。实现时应明确字符编码、异常处理和资源关闭方式,并注意 Files.lines 返回的 Stream 也需要关闭。
public static void main(String[] args) throws IOException {
File file = new File("c:/error.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
JsonObject json = new JsonObject();
String readoneline = null;
while((readoneline = br.readLine()) != null){
String[] lines = readoneline.split("\\-");
json.addProperty(lines[0], lines[1]);
}
br.close();
isr.close();
fis.close();
File errorJson = new File("c:/errorJson.txt");
if(!errorJson.exists()) errorJson.mkdir();
FileOutputStream fos = new FileOutputStream(errorJson);
fos.write(json.toString().getBytes());
fos.close();
System.out.println("OK...");
}
主要解决的问题是:把文件中的有对应格式的字符串,转换成json字符串的文件
核心代码:
String readoneline = null;
while((readoneline = br.readLine()) != null){
String[] lines = readoneline.split("\\-");
json.addProperty(lines[0], lines[1]);
}