Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带空行的缓冲读取器readLine()_Java_Text_File_Buffered - Fatal编程技术网

Java 带空行的缓冲读取器readLine()

Java 带空行的缓冲读取器readLine(),java,text,file,buffered,Java,Text,File,Buffered,我使用缓冲读取器一次从文本文件中获取一行。我还尝试使用跟踪整数从文本文件中获取行号。不幸的是,BufferedReader正在跳过空行(只有/n或回车符的空行) 有没有更好的办法解决这个问题?使用扫描仪行吗 示例代码: int lineNumber = 0; while ((s = br.readLine()) != null) { this.charSequence.add(s, ++lineNumber); } 你看过LineNumberReader吗?我不确定这是否对你有帮助 我

我使用缓冲读取器一次从文本文件中获取一行。我还尝试使用跟踪整数从文本文件中获取行号。不幸的是,BufferedReader正在跳过空行(只有/n或回车符的空行)

有没有更好的办法解决这个问题?使用扫描仪行吗

示例代码:

int lineNumber = 0;
while ((s = br.readLine()) != null) {
    this.charSequence.add(s, ++lineNumber);
}

你看过LineNumberReader吗?我不确定这是否对你有帮助


我无法复制你的说法,即
BufferedReader
跳过空行;它不应该这样做

下面是一些代码片段,说明空行不仅仅是被跳过的

上述任何代码段的输出为:

0001: line1
0002: 
0003: 
0004: line4
相关问题
  • -一个
    LineNumberReader
    +
    Scanner
    组合
  • -有很多例子

必须是FileReader类跳过换行符。
我再次检查了
readLine()
的结果,它没有包含新行符号,因此它发生在两个类FileReader和BufferedReader之间


你对变量s的声明是什么?在将来的“它不起作用”问题中,一段有味道的代码片段会很有帮助。噢,我的错。找到问题代码。谢谢各位,对不起,我的问题很糟糕,我应该仔细研究一下。在那一点上被难住了。看起来我想把这些行添加到一个列表中,但它没有保留回报。字符串s=null;this.charSequence=newLinkedList();而((s=br.readLine())!=null){this.charSequence.add(s);}Java的API说:readLine public String readLine()抛出IOException读取一行文本。一行被认为是由换行符('\n')、回车符('\r')或紧接着换行符的回车符中的任意一个终止的。返回:一个包含行内容的字符串,不包括任何行终止字符,如果已到达流的结尾,则返回null。抛出:IOException-如果发生I/O错误,则返回true。根据文档readLine(),LineNumberReader的行为如下:“读取一行文本。每当读取行终止符时,当前行号都会递增。”
    String text = "line1\n\n\nline4";
    LineNumberReader lnr = new LineNumberReader(new StringReader(text));
    String line;
    while ((line = lnr.readLine()) != null) {
        System.out.printf("%04d: %s%n", lnr.getLineNumber(), line);
    }
    String text = "line1\n\n\nline4";
    Scanner sc = new Scanner(text);
    int lineNumber = 0;
    while (sc.hasNextLine()) {
        System.out.printf("%04d: %s%n", ++lineNumber, sc.nextLine());
    }
0001: line1
0002: 
0003: 
0004: line4
BufferedReader br = null;
String s = null;

try {
    br = new BufferedReader(new FileReader(fileName));
    while ((s = br.readLine()) != null) {
        this.charSequence.add(s);
    }
} catch (...) {

}