所以我正在编写一个带有用户输入的小程序
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()语句包含在一个while循环中,里面有一些简单的处理,但我知道代码没有到达那里。答案 0 :(得分: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();
....