【发布时间】:2019-05-16 10:33:32
【问题描述】:
我有这个简单的方法:
private String read(String filePath) throws IOException {
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String fileContent = "";
StringBuilder stringBuilder = new StringBuilder(fileContent);
while (bufferedReader.readLine() != null){
System.out.println(bufferedReader.readLine());
stringBuilder.append(bufferedReader.readLine());
}
return fileContent;
}
正如您在第 8 行中看到的,我包含了 print 用于调试目的 我希望这个方法从这个 txt 文件中返回字符串:
1a1
2b 2a
3c 3b 3a
4d 4cr 4bb4 4a
5e 5d 5c 5b 5ax
6f 6ea 6d 6ca 6bb 6a
7g 7f 7ea
由于某种原因,输出是这样的:
2b 2a
5e 5d 5c 5b 5ax
null
为什么它只读取第二行和第五行? 这个 null 来自哪里? 最后返回的字符串似乎是空的。
我想了解这里发生了什么。谢谢 :)
【问题讨论】:
-
每次调用 readLine() 都会读取一个新行。您在循环的每次迭代中读取 3 行。
-
最终你应该在方法退出/返回时关闭 FileReader。
标签: java file bufferedreader