>我正在尝试使用扫描仪打印文本文件中的行,但它只打印第一行,然后只打印新行,直到 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);
}