2012-04-17 33 views
0

我有一个while循环,当BuffedReader仍然有数据时,while循环的意图是读取每一行然后继续。这是我线路仍在运行?

final BufferedReader in; 
.... 
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
String line = null 
while ((line = in.readLine()) != null) { 
    line = line.replace(" ", ","); 
    reply.append(line + System.getProperty("line.separator")); 
    Log.d("DeviceActivity", line); 
} 
  • 编辑

这读取预期的两条线,然后像它意味着它没有完成循环。

我已经尝试了不同的输入以及相同的结果,它不会退出while循环。

有谁知道如何防止这种情况?

也不总是两条线,它可能是无限的。

+0

你是什么意思“*应该在那里,但它只是停止,它不会继续*”? – Lion 2012-04-17 21:37:34

+0

阅读编辑,谢谢 – FabianCook 2012-04-17 21:40:57

回答

0

这里工作,它只会在输入流准备就绪时读取行。

while (in.ready() && (line = in.readLine()) != null) { 
    Log.i("Line", line); 
    publishProgress(line); 
    Thread.sleep(25); 
}