2012-11-12 18 views
0

BufferedReader.readLine()不读取并挂起system(wait)BufferedReader.readLine()不读取并挂起系统(等待)

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

好吧,大概你没有给它一行阅读...没有更多的信息很难再说。请参阅http://tinyurl.com/so-hints –

+0

我应该发布我的完整方法吗? – Dingling

+0

不,你应该告诉我们为什么你期望它能够读取一行。你在阅读什么过程?可能是因为你没有从错误流中读取而被阻塞? –

回答

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. 
+0

如何读取的字节 – Dingling

+0

IM仍然面临着字节读什么问题可能是等待问题 – Dingling

+0

试试这个: while((i = buffrdr.read())!= - 1){//} – Jatin