我正在尝试确定哪种方式更适合一次读取文件,字节。这两种方式中哪一种比另一种方式更好,如果是这样,为什么呢?
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);
}
答案 0 :(得分:3)
另一个常见的习语就是这个。它既没有冗余也没有中断声明。
int bytesRead;
while ( -1 != (bytesRead = fileContent.read(buffer)) {
...
}
答案 1 :(得分:0)
第一个,(只需修正它并将while(bytesRead != 1)
更改为while(bytesRead != -1)
)。它说明何时完成while循环更清楚。