BufferedReader.Readline()不要读取并挂起系统(等待)



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.

相关内容

  • 没有找到相关文章

最新更新