我有一个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 :(得分:0)
此处有效,只有在输入流准备就绪时才会读取该行。
while (in.ready() && (line = in.readLine()) != null) {
Log.i("Line", line);
publishProgress(line);
Thread.sleep(25);
}