繁体   English   中英

BufferedReader在readLine()上不断添加

[英]BufferedReader adds endlessly on readLine()

我试图通过向垃圾邮件发送“ Hello world!”来通过蓝牙从Arduino发送测试消息。 每100毫秒。 现在,在android上,我添加了无尽的“ hello world!” 到我的StringBuilder以及每个调试迭代中,我都有“ hello world!\\ nhello world!\\ nhello world!\\ n ...”等信息。该怎么办? 作为一个主意,我会从arduino到Android设备向很多Json发送垃圾邮件。 我是否需要为分隔符制作一些特殊的char序列,以在arduino的每个消息之后中断一会儿? 还是有一个更简单的决定?

 public static String toString(InputStream inputStream) throws IOException {

            byte[] bs = new byte[inputStream.available()];
            if (Utils.isZero(bs.length)) {
                return "";
            }
            BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder total = new StringBuilder();
            String line;
            while (r.ready()) {
                line = r.readLine();
                total.append(line).append('\n');
            }

            return total.toString();
        }

您不需要检查流的结尾。

编写该读取循环的正确方法是:

while ((line = br.readLine()) != null)
{
    total.append(line).append('\n');
}

但是,如果数据是无止境的,甚至没有循环就没有意义。 只需返回br.readLine() 拥有这种方法甚至没有任何意义。

注意:您无需分配字节数组即可确定其长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM