扫描仪nextline()仅打印新行

我试图使用扫描仪从文本文件中打印行,但它只打印第一行,然后才打印新行,直到while循环经过文件。

String line;
File input = new File("text.txt");
Scanner scan = new Scanner(input);
while (scan.hasNext()) //also does not work with hasNextLine(), but additional error
{
line = scan.nextLine();
System.out.println(line);
//other code can see what is in the string line, but output from System.out.println(line); is just a new line
}

我如何获得System.out.println()以使用此代码?


这是nextLine()的Javadoc nextLine()

将此扫描器推进到当前行并返回跳过的输入。 此方法返回当前行的其余部分,排除末尾的任何行分隔符。 该位置设置为下一行的开头。

你想要next()来代替:

查找并返回此扫描程序中的下一个完整标记。 完整的令牌前后有与分隔符模式匹配的输入。 即使先前调用hasNext()返回true,该方法也可能在等待输入进行扫描时阻塞。

你的代码变成:

while (scan.hasNext())
{
  line = scan.next();
  System.out.println(line);
}

您可以使用.next()方法:

String line;
File input = new File("text.txt");
Scanner scan = new Scanner(input);
while (scan.hasNext()) //also does not work with hasNextLine(), but additional error
{
    line = scan.next();
    System.out.println(line);
}
链接地址: http://www.djcxy.com/p/17211.html

上一篇: Scanner nextline() only printing new lines

下一篇: Java scanner not going through entire file