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");
}
答案 0 :(得分:2)
您需要不断读取进程输入流,以确保它不会阻塞。
阅读本文:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
答案 1 :(得分:0)
重点是这一行
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.