我正在尝试运行 .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();
}
除了不关闭流这一事实之外,代码中的这个或其他内容是否可能会阻止输出在某些情况下被正确读取?
谢谢,