从STDIN读取命令并在输入时执行每个命令

时间:2011-09-26 17:47:29

标签: java antlr stdin

我想调整下面的代码来使用ANTLRReaderStream,所以我不必为每一行创建一个新的解析器。但是它需要单独处理每一行,我现在还不知道如何做,我也没有看到任何方式向解析器询问它是否已准备好数据(或者等同于{{1 }}

主循环:

String line = stdin.readLine()

处理一行:

stdin = new BufferedReader(new InputStreamReader(System.in));

while (true) {
    String line = stdin.readLine();
    if (line == null) {
        System.exit(0);
    }

    processLine(line.trim());
}

1 个答案:

答案 0 :(得分:1)

如果使用JDK1.6,我们可以执行以下主循环:

    Console console = System.console();

    if (console != null) {
        String line = null;

        while ((line = console.readLine()) != null) {
            processLine(line.trim());
        }
    } else {
        System.out.println("No console available!!");
    }