我正在尝试使用扫描仪从文本文件中打印线条,但它只打印第一行,然后才打印新行,直到循环遍历文件。
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()使用此代码?
答案 0 :(得分:3)
使此扫描程序超过当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。
您想要next()
代替:
查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。即使之前的hasNext()调用返回true,此方法也可能在等待输入扫描时阻塞。
您的代码变为:
while (scan.hasNext())
{
line = scan.next();
System.out.println(line);
}
答案 1 :(得分:0)
您可以使用 .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);
}