BufferedReader.readLine()
不要读取并悬挂 system(wait)
。
InputStream istrm = runtimeProcess.getInputStream();
InputStreamReader istrmrdr = new InputStreamReader(istrm);
BufferedReader buffrdr = new BufferedReader(istrmrdr);
System.out.println("4");
String data;
String st;
System.out.println("4a");
while (!(st=buffrdr.readLine()).isEmpty()) {
System.out.println("5 in loop");
}
您需要连续从流程输入流读取以确保它不会阻止。
阅读以下内容:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
重点是该行
while (!(st=buffrdr.readLine()).isEmpty())
您的代码将等待该行终止。也就是说,直到找到" n"字符;它将保持缓冲,因此不会脱离循环。因此,要么在输入流中设法具有快速的线路。或阅读字节。您可能应该阅读字节并进行工作。
int i=0;
char[] buf = new char[10000]
while((i=buffrdr.read(buf,i,100))!= -1)
{
String h = new String(buf);
//use h o print accordingly.