何时知道System.in结束

时间:2013-11-08 03:50:56

标签: java

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

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

  • ORIGINAl:“Osistemadeverálercomandos daentradapadrão (System.in),processando-os um en enndondo os resultados para a saídapadrão(System.out)。 atingido的终点ocorreráquando o fim de ficheiro naentradapadrão。“
  • TRANSLATED:“系统应该从标准中读取命令 输入(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");
        }
    }

2 个答案:

答案 0 :(得分:3)

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

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

BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "UTF-8")); 
String line;
while((line = br.readLine()) != null) {
    System.out.println(line);
}

答案 1 :(得分:1)

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