在下面的代码中,我正在执行一个java程序Newsworthy_CA。 该程序打印Newsworthy_CA程序的输出,但我面临的困难是它只在完成Newsworthy_CA程序的执行后打印整个输出。 但是我需要在程序执行时同时打印输出。
另外,如果发生任何错误,我需要child.waitFor()来阻止程序继续。
请为我的要求建议一些好主意。提前致谢。
注意:我是Java的初学者
command = "java Newsworthy_CA";
Process child4 = Runtime.getRuntime().exec(command);
try{
c= child4.waitFor();
} catch (Exception ex){ex.printStackTrace();}
if (c!=0){
System.out.println("Error Occurred in ("+command+"): "+c);
InputStream in4 = child4.getErrorStream();
while ((c = in4.read()) != -1) {
System.out.print((char)c);
}
in4.close();
return;
}
InputStream in4 = child4.getInputStream();
while ((c = in4.read()) != -1) {
System.out.print((char)c);
}
in4.close();
答案 0 :(得分:1)
如果你想在外部程序执行时看到输出,你不想让InputStream块在waitFor()之上移动吗?
当您的代码读取时,您非常清楚地说要在执行任何操作之前执行并等待完成...包括打印外部程序的输出(InputStream块)。