扫描仪 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() 使用此代码?

这是

Javadoc for 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);
}

最新更新