2 votes

En Java, quelle est la meilleure approche pour lire les fichiers par octets ?

J'essaie de décider quelle est la meilleure méthode pour lire un fichier, octets par octets. L'une de ces deux méthodes est-elle meilleure que l'autre et si oui, pourquoi ?

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);
 }

3voto

Andy Thomas Points 30979

Un autre idiome commun est celui-ci . Elle n'a ni redondance ni déclaration de rupture.

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

0voto

morgano Points 8701

La première, (il suffit de la corriger et de changer votre while(bytesRead != 1) à while(bytesRead != -1) ). Il indique plus clairement quand il faut terminer la boucle while.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X