加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 更优雅的输入流读循环?

发布时间:2020-12-14 19:20:41 所属栏目:Java 来源:网络整理
导读:多年来我一直在从这样的循环中读取InputStreams: final byte[] buffer = new byte[65536];InputStream is = ...;int r;while ((r = is.read(buffer)) 0) { ...} 但我想知道是否有办法在循环中避免该赋值(不引入第二个条件) 例如我认为这个代码更不优雅,因为

多年来我一直在从这样的循环中读取InputStreams:

final byte[] buffer = new byte[65536];
InputStream is = ...;
int r;
while ((r = is.read(buffer)) > 0) {
    ...
}

但我想知道是否有办法在循环中避免该赋值(不引入第二个条件) – 例如我认为这个代码更不优雅,因为有两个read语句和两个条件:

r = is.read(buffer);
if (r > 0) {
  do {
      ...
      r = is.read(buffer);
  } while (r > 0);
}

任何更优雅的想法(紧凑,没有条件的任务)构造?

最佳答案
你怎么看待这件事:

for (int count = stream.read(buffer); count >= 0; count = stream.read(buffer)) {
  .....
}

它结构紧凑,可以保持计数变量的最小范围
但它可能被认为不太可读

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读