跳到主要内容

Java 按行读取文件:BufferedReader、Files.lines 与字符编码

· 阅读需 1 分钟
Apache王也道长
软件开发者与技术作者

这篇文章让我们来看看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]);
}

本文阅读量:--

总访问量 -- · 访客数 --