java - 循环结束,但没有结束

标签 java android while-loop

我有一个 while 循环,它将使用缓冲读取器读取的元素添加到 ArrayList 中。循环工作正常,除了完成后,应用程序似乎没有继续前进。相关代码为:

            int ctr = 1;
            while((test = bf.readLine()) != null)
            {

                Log.i(TAG, test);
                users.add(test);
                Log.i(TAG, "" + (ctr++));

            }
            Log.i(TAG, "Loop done.");

循环中的两个日志语句各执行 4 次,这是正常行为。但是,循环后面的语句不会执行。就好像被卡住了一样。我很确定它也不会进入循环,因为里面的两个日志语句也不再执行。

bf是BufferedReader,users是ArrayList。

LogCat 输出:

08-04 01:35:37.472: I/UM(2937):     UserInfo{0:Primary:3}
08-04 01:35:37.472: I/UM(2937): 1
08-04 01:35:37.476: I/UM(2937):     UserInfo{1:Test1:0}
08-04 01:35:37.476: I/UM(2937): 2
08-04 01:35:37.476: I/UM(2937):     UserInfo{2:test2:0}
08-04 01:35:37.480: I/UM(2937): 3
08-04 01:35:37.480: I/UM(2937):     UserInfo{3:testxyz:0}
08-04 01:35:37.480: I/UM(2937): 4

有人知道我的(可能是愚蠢的)错误是什么吗?

最佳答案

您的代码在线上阻塞:

 while((test = bf.readLine()) != null)

这样做是因为向 bf 提供数据的流永远不会被关闭。

(这个答案不是我的,它只是评论中的一个快速总结。)

关于java - 循环结束,但没有结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802634/

相关文章:

java - 呈现期间引发的异常:android.support.design.widget.AppBarLayout无法强制转换为android.preference.Preference

android - 如何在android设备上读取beacon的UDID、Major、Minor?

java - 在自定义组件中获取 android 特定属性

c# - 单体机器人 : Unhandled Exception Recovery

c# - NetMQ接收/响应在循环时不起作用

python - Tkinter:在循环中更新标签

python - 字符串格式 .format 到变量

java - toString 包含对象的数组列表

java - java中的定时器,时差问题

java - 如何从矩形和点绘制矩形?