Java控制台中的多行读取未退出
我使用以下代码在Java中执行多行读取。问题是,由于控制台正在运行,它永远不会退出while循环。我怎样才能做到这一点 谢谢Java控制台中的多行读取未退出,java,console,Java,Console,我使用以下代码在Java中执行多行读取。问题是,由于控制台正在运行,它永远不会退出while循环。我怎样才能做到这一点 谢谢 Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { String temp = scanner.nextLine(); data.add(temp); log.info(data.toString()); }
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String temp = scanner.nextLine();
data.add(temp);
log.info(data.toString());
}
scanner.close();
linux shell:CTRL-D(文件结尾)
windoze:获取linux(或gitbash)
系统。在
中,从扫描仪的角度来看,将始终有下一行,因为它总是在等待新的输入。如果您的输入中没有空行,您可以在输入的末尾添加一个空行,然后在循环的末尾添加:
if(temp.isEmpty()){
break;
}
您不使用Scanner类读取文件,而是从默认输入流读取,该流没有EOF(文件结束)字符。问题在于:hasNextLine()方法无法识别没有更多输入!尝试以下方法从命令行读取:
String temp;
Scanner scanner = new Scanner(System.in);
while((temp = scanner.nextLine()) != null)
{
data.add(temp);
log.info(data.toString());
...
}
scanner.close();
要手动退出循环,请使用以下选项