San*_*anu 1 java bufferedreader
对于java来说,我是新手.我想从java中启动的进程中读取stdout.我在谷歌搜索时得到以下代码:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(args);
BufferedReader br = new BufferedReader(
new InputStreamReader(proc.getInputStream()));
while(br.ready()){
System.out.println(br.readLine());
}
Run Code Online (Sandbox Code Playgroud)
但是,此代码不会打印进程(例如,ls)应该生成的输出(顺便说一下,我在Linux上,openJDK 1.6)
但是,如果我将while循环更改为:
String line;
while((line = br.readLine())!=null){
System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
以前的代码有什么问题?根据java api doc所说的,我认为它们是相似的.