對於java,我是新手。我想從java中啓動的進程讀取stdout。我在谷歌搜索下面的代碼:「BufferedReader.ready」與「while(BufferedReader.readLine()!= null)」
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());
}
但是,此代碼不打印輸出過程中(比如,LS)應該產生(順便說一句,我是在Linux上,OpenJDK的1.6)
但是,如果我改變while循環:
String line;
while((line = br.readLine())!=null){
System.out.println(line);
}
它按預期工作。
以前的代碼有什麼問題?根據java api doc的說法,我認爲它們是相似的。
編輯第一個代碼塊,以反映實際代碼 – Santanu