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 循环。

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

此外,它并不总是两条线,它可能是无限的。

4

1 回答 1

0

这在这里有效,如果输入流准备好,它只会读取该行。

while (in.ready() && (line = in.readLine()) != null) {
    Log.i("Line", line);
    publishProgress(line);
    Thread.sleep(25);
}
于 2012-06-15T08:52:11.490 回答