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

问题描述 投票:2回答:2

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

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);
 }
java idioms
2个回答
3
投票

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.