【发布时间】:2014-12-05 08:44:11
【问题描述】:
我有一个正在读取文件的 BufferedReader。该文件可以很容易地在 2 个段落之间有一个空行,例如:
Lorem ipsum dolor sit amet,mel in docendi eleifend sapientem,mei cu natum possit salutandi。 Quaeque legimus appareat cum in, tamquam cotidieque duo in. Justo ubique efficiantur ei sit, idque dicat sadipscing ad sit。 Amet 领事 disputationi ei 海。在 reque lorem quo,每立方米的动物奇异,usu euripidis reprimique inciderint eu。
Ocurreret dissentias ei per。 Copiosae vulputate vel ei, ne est dissentias adversarium, ad quo graecis nostrum volutpat。 Vix ut sale persequeris,id est volumus noluisse,mel et Ridens Molestiae。 Ut qui iriure volutpat contentiones, unum propriae inciderint ut duo。 Ei singulis delicata per。 Usu verterem nominati in.
BufferedReader 在到达第一段的末尾时停止阅读。我知道为什么它会停止,因为它认为只要找到一个空行,它就认为它是文件的结尾,这是我的问题。
我一直使用while循环的方式来遍历文件。
我一直在为这个问题争吵,我放弃了我原来的 bufferedreader 方法并对其进行了多次编辑,但它是这样的:(伪代码,这段代码不正确。主要注意 while 循环)
public static String currenttxt() throws IOException {
BufferedReader br = new BufferedReader(new FileReader(file));
try {
while (br.readLine() != null) {
return br.readline();
}
} catch (Exception e) {
e.PrintStackTrace();
}
}
我该如何解决这个问题?
【问题讨论】:
-
你能用相关代码sn-p更新你的问题吗?
-
会的。给我一分钟。
-
您从流中读取了两次。您在 while() 中读取的数据将被丢弃 :(
-
由于循环中的
return,您的函数只会返回文件的第一行。循环永远不会被执行超过一次。我猜你的第一个“段落”实际上是一个单一的“行”。
标签: java bufferedreader