读下一行InputStream Java

时间:2011-04-26 15:12:29

标签: java newline break

我有一个可以从文本文件中读取的InputStream。我注意到输入流不会从空白的下一行读取。

示例文本文件:

[This is

A test file

Here.]

代码:

while ((str = br.readLine())!= null) {
    System.out.println(str);
}

某些文本文件之间会有多个中断行。如何让输入流接受断行?

从示例文本文件中可以看出,'[this is'后跟一个空行,然后是'A test file'。如何读取两组字符串之间的空行? (这是我对换行符/换行符的定义)

3 个答案:

答案 0 :(得分:3)

你的意思是?

while ((str = br.readLine())!= null && str.trim().length()>0) {
    System.out.println(str);
}

这为您提供了所有非空行。

答案 1 :(得分:1)

BufferedReader将读取文件中的所有行,无论它们是否为空白。它将寻找换行符:Windows上的LF + CR和GNU / Linux上的LF。根据BufferedReader文档:

  

一条线被视为终止   通过任何一个换行符('\ n'),a   回车('\ r')或马车   返回后紧接着一个   换行。

因此,它取决于您的文本文件的真实外观。它是否真的在行之间有回车和换行,还是只是以这种方式显示?你可以通过在Hex编辑器中查看文件来找到它(LF是0x0A,CR是0x0D)。如果是这样,那么BufferedReader应该给你那些空行。

答案 2 :(得分:0)

对不起,这是一个接受InputStream的BufferedReader。 BufferedReader确实读取了每一行,包括下一行/中断行/换行符。问题在于我写的算法只是错过了下一行/断行/换行符。对不起,麻烦和麻烦。

感谢所有答案。