从键盘获取输入而不暂停程序

时间:2012-02-19 11:38:13

标签: java return java.util.scanner

我正在Windows 7上编写Java,我希望能够使用键盘输入,我只能假设它是标准输入。

我尝试使用BufferedInputSystem.inScanner,但所有这些都要求程序暂停并等待行尾或返回!无论如何只是在使用时收集和记录数据,而不必等待返回?

1 个答案:

答案 0 :(得分:2)

这是一个快速解决方案:

public static void main(String[] args) {

    Thread inputThread = new Thread(new Runnable() {
        @Override
        public void run() {

            Scanner scan = new Scanner(System.in);
            String input = "";
            while (true) {
                System.out.println("Type something: ");
                input = scan.nextLine();
                System.out.println("Input: "+input);
            }
        }
    });

    inputThread.start();

    while (true) {

        System.out.println("");
        System.out.println("test");

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

主线程每秒打印一次“测试”。 inputThread要求用户键入内容然后打印他写的内容。它只是一个“视觉”解决方案,当然你不想在用户打字时打印一些东西。