我正在阅读Deitel的书,它说有一个键序列CTRL z终止了扫描仪输入。所以我在NetBeans IDE中编写了一个类似的代码(代码类似于Deitel的书)
Scanner y = new Scanner(System.in);
String g;
while(y.hasNext())
{
g = y.nextLine();
System.out.println(g);
}
但是当我输入一些输入后按CTRL-z时,没有任何反应。 java(EOF键序列)中是否存在这样的东西?我还访问了页面How to terminate Scanner when input is complete?,但建议的代码对我不起作用。
答案 0 :(得分:0)
文件结束终止符是特定于平台的......通常在Java控制之外实现。
在Windows上使用^ Z,但在基于Linux / Unix的系统上,^ D是正常的EOF字符...当接受来自“tty”或等同物的字符时。
尝试^ D。
答案 1 :(得分:0)
执行以下操作:
while (input.hasNext()) // faz um loop até o indicador de fim de arquivo
{
try
{
// gera saída do novo registro para o arquivo; supõe entrada válida
output.format("%d %s %s %.2f%n", input.nextInt(),
input.next(), input.next(), input.nextDouble());
}
catch (FormatterClosedException formatterClosedException)
{
System.err.println("Error writing to file. Terminating.");
break;
}
catch (NoSuchElementException elementException)
{
System.err.println("Invalid input. Terminating.");
break; // descarta entrada para o usuário tentar de novo
}
System.out.print("? ");
} // fim do while