.csh スクリプトを実行して、その出力を StringBuffer に読み込もうとしています。コンソールからスクリプトを実行すると何らかの出力が返されますが、出力が空になることがあります。同じ実行中のフローが出力を返す場合と返さない場合がありますが、プロセスの開始方法 (同じスクリプト、パス、引数) は何も変更されておらず、スクリプトも変更されていません。例外がスローされません。出力が正しく/正常に読み取られるようになった原因は何ですか? コードセグメントは
public static String getOutpoutScript(Process p) {
InputStream outpout = p.getInputStream();
logger.info("Retrived script output stream");
BufferedReader buf = new BufferedReader(new InputStreamReader(outpout));
String line = "";
StringBuffer write = new StringBuffer();
try {
while ((line = buf.readLine()) != null) {
write.append(line);
}
} catch (IOException e) {
// do something
}
return write.toString().trim();
}
ストリームを閉じないのは良くないという事実に加えて、これまたはコード内の他の何かが、状況によっては出力が正しく読み取られない可能性がありますか?
ありがとう、