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

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

发布时间:2020-05-25 11:40:59 所属栏目: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)) {
  .....
}

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

(编辑:安卓应用网)

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

    推荐文章
      热点阅读