从终端读取而不等待Java的“换行符”

时间:2013-04-14 09:54:43

标签: java terminal user-input

我正在尝试阅读用户输入的每个字符而不等待“换行符”。

此代码不起作用,因为AFAIK Scanner在将输入发送到应用程序之前等待换行符

Scanner s = new Scanner(System.in);
if(s.hasNext()){
    char c = s.next().charAt(0);
}

我也尝试过使用BufferedReader:

System.out.println("Input something: ");
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
while(!b.ready()){
    try {
        Thread.sleep(100);
    } catch (Exception e) {
    }
}
System.out.println("Now it's ready, i'm reading the first char");
char c = (char)b.read();

但输出是:

Input something:
> abcde
Now it's ready, i'm reading the first char

所以它总是在等待换行符。

有没有办法在不等待Java换行的情况下读取用户输入?

谢谢,任何帮助将不胜感激

0 个答案:

没有答案