2

所以我正在编写一个接受用户输入的小程序

public class Test {
    public static void main(String[] args) throws IOException {
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String something = input.readLine();
    }
}

这是删掉的相关部分,我在 readline() 上运行这个和主线程块,但我的 CPU 使用率始终为 ~15-20%。

这里有什么,是否有更有效的方式从控制台读取。

编辑:我在 Mac OS 10.8 上,这个过程现在已经运行了 20 分钟。input.readline() 语句被包裹在一个真正的循环中,里面有一些简单的处理,但我知道代码没有到达那里。

4

1 回答 1

1

我假设您有某种代码可以检查 readLine() 的状态,否则 Java 将继续阻塞。

String line = null;
while ((line = br.readLine()) != null) {
    // handle contents of line here
}

最好使用 Scanner 类来读取用户输入。

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
....
于 2013-06-12T19:47:54.050 回答