0
我有一個ProcessBuilder
的包裝,這樣任何需要運行進程的類都可以使用它。
該類傳遞進程和參數並返回結果。
結果將是Process
的輸出流或我猜測的errorstream。
我的問題是如何在線程間傳遞流?我的意思是我在做類似如下:如何將一個流從一個線程傳遞到另一個線程?可能是我應該以不同的方式做到這一點?
String line=null;
try {
while ((line = br.readLine()) != null) {
if (pw != null)
pw.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
if (pw != null)
pw.flush();
我想我應該flush
但不關閉蒸汽吧?或者我應該以不同的方式去做?
您是否試圖在多個線程之間同時訪問相同的流,或者只是在不同的時間切換流以供不同的線程使用?另外,你是否遇到過[Commons Exec](http://commons.apache.org/exec/)?它的API通常比'ProcessBuilder'更簡單。 – hertzsprung 2013-03-08 10:38:45
@ hertzsprung.No.I想要將流程從綁定到Process''InputStream'的線程傳遞給最初想要運行進程的調用者線程,'waitFor'進程完成 – Jim 2013-03-08 10:40:33
你是否試圖確定誰應該負責關閉流?在你當前的代碼中,你只需要將流數據讀入一行,大概可以通過。我認爲這不是你想要的? – 2013-03-08 11:49:59