2013-12-10 101 views
0

關於捕獲stdout並將其存儲到字符串中有很多問題,但大多數stdout都是由用戶生成或由直接java函數輸出的東西。在我的情況下,從我的java程序,我啓動了一個腳本,打印一系列文件路徑到標準輸出。它是一個使用find命令返回文件路徑的腳本。我想捕獲這些文件路徑並將它們存儲到我的Java代碼中的一個字符串中,以後我可以在java程序的另一個函數中使用它。從腳本中捕獲stdout並存儲在java字符串中

我的代碼:

launchOnCommandLine("./getFilepaths.sh"); 

這會吐出了一系列的文件路徑到控制檯窗口,我要捕捉到這些,並存儲爲一個字符串。

有很多關於ByteArrayOutputStream的例子,但我不太明白我如何在我的上下文中使用它。

+0

你也許可以將它們放在一個文件中並將其用作輸入? – Zavior

回答

-1

Process.getInputStream()可以處理它,但它有一些注意事項,如果你不小心從流讀取,可導致死鎖:Some reading here

如果您使用的是Java 1.7,建議使用更安全的替代方法是使用ProcessBuilder類:Some more reading

相關問題