0

BuffedReaderにまだデータがある間に実行されるwhileループがありますが、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);
}
  • 編集

これにより、予想される2行が読み取られ、意図したとおりにループが終了しません。

別の入力でも試してみましたが、同じ結果で、whileループを終了しません。

誰かがこれを防ぐ方法を知っていますか?

また、常に2行であるとは限らず、無限になる可能性があります。

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 に答える