在Java中,按字节读取文件的方法更好:

时间:2013-08-16 11:22:20

标签: java idioms

我正在尝试确定哪种方式更适合一次读取文件,字节。这两种方式中哪一种比另一种方式更好,如果是这样,为什么呢?

1)

byte[] buffer = new byte[FILE_RETRIEVAL_BUFFER_SIZE];
int bytesRead = fileContent.read(buffer);
while (bytesRead != 1) {
    fileOnDisk.write(buffer, 0, bytesRead);
    bytesRead = fileContent.read(buffer);
}

2)

byte[] buffer = new byte[FILE_RETRIEVAL_BUFFER_SIZE];
while (true) {
    int bytesRead = fileContent.read(buffer);
    if (-1 == bytesRead)
         {break;}
    fileOnDisk.write(buffer, 0, bytesRead);
 }

2 个答案:

答案 0 :(得分:3)

另一个常见的习语就是这个。它既没有冗余也没有中断声明。

int bytesRead;
while ( -1 != (bytesRead = fileContent.read(buffer)) {
       ...
}

答案 1 :(得分:0)

第一个,(只需修正它并将while(bytesRead != 1)更改为while(bytesRead != -1))。它说明何时完成while循环更清楚。