文件结束键序列在NetBeans上不起作用

时间:2016-05-09 12:58:46

标签: java netbeans inputstream

我正在阅读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?,但建议的代码对我不起作用。

2 个答案:

答案 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