android输入流转字符串,Android从输入流中高效读取

您的代码中的问题在于,它正在创建许多重的String对象,复制它们的内容并对其执行操作。相反,应该使用StringBuilder以避免String在每个追加上创建新对象,并避免复制char数组。您的案例的实现将如下所示:

BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));

StringBuilder total = new StringBuilder();

for (String line; (line = r.readLine()) != null; ) {

total.append(line).append('\n');

}

现在,您total无需将其转换为即可使用String,但是如果您需要将结果作为String,只需添加:

字符串结果= total.toString();

我会尽力解释一下...

a += b(或a = a + b),其中a和b都是字符串,副本的内容都 a 和 b一个新的对象(注意,你还复制a,它包含累积 String),和你正在做的每一次迭代的拷贝。

a.append(b),其中a是StringBuilder,直接将b内容附加到a,因此您不必在每次迭代时都复制累积的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值