-2

根据老师的说法,我们的代码是从 System.in 中读取的,当我们到达标准输入文件的末尾时,程序就结束了。我怎么知道我已经走到了尽头?

根据要求,这里是我最好的翻译。--

  • 原文:“O sistema deverá ler comandos da entrada padrão (System.in), processando-os um a um e enviando os resultados para a saída padrão (System.out). A terminação ocorrerá quando for atingido o fim de ficheiro na entrada padrão 。”
  • 翻译:“系统应该从标准输入(System.in)读取命令,一一处理并将结果发送到标准输出(System.out)。结束应该发生在标准中的文件结束时输入到达”

到目前为止我所拥有的。

public static void readInput()
    {
        java.util.Scanner in;
        String tmp = "";
        try {
            in = new Scanner(System.in);
            while (in.hasNext()) {
                tmp = in.next().toUpperCase();
                commandAnalyzer(tmp, in);
            }
            in.close();
        } catch (Exception e) {
            System.out.printf(e.getLocalizedMessage() + "\n");
        }
    }
4

2 回答 2

3

System.in引用输入流。此输入流可以是任何输入源。它可能是一个文件,也可能是另一个程序的输出,或者只是用户传入的参数的输入。

如果您希望输入是文件,您可能需要使用阅读器:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "UTF-8")); 
String line;
while((line = br.readLine()) != null) {
    System.out.println(line);
}
于 2013-11-08T04:23:46.663 回答
1

如果您使用的是Scanner类,那么,您知道scannerObject.hasNext()返回时输入的结束false

于 2013-11-08T04:00:11.770 回答