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

在Java中,哪种按字节读取文件的方法更好:,java,idioms,Java,Idioms,我正试图决定哪种方式更适合一次读取一个文件(字节)。这两种方法中的一种比另一种好吗?如果是,为什么 (一) (二) 另一个常见的成语是。它既没有冗余语句,也没有中断语句 int bytesRead; while ( -1 != (bytesRead = fileContent.read(buffer)) { ... } 第一个(只需修复它并将while(bytesRead!=1)更改为while(bytesRead!=1))。它更清楚地说明了何时完成while循环。谢谢。这样做的

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

(一)

(二)


另一个常见的成语是。它既没有冗余语句,也没有中断语句

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

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

谢谢。这样做的优点是可以消除while(true)中断业务,但也不需要使用bytesRead=fileContent.read(buffer);出现在两个地方。不过读起来有点尴尬,不客气。这个习惯用法至少可以追溯到C编程。当你看到它更多的时候,它可能开始看起来不那么尴尬,更像是一个熟悉的结构。
byte[] buffer = new byte[FILE_RETRIEVAL_BUFFER_SIZE];
while (true) {
    int bytesRead = fileContent.read(buffer);
    if (-1 == bytesRead)
         {break;}
    fileOnDisk.write(buffer, 0, bytesRead);
 }
int bytesRead;
while ( -1 != (bytesRead = fileContent.read(buffer)) {
       ...
}