2 votes

compter la longueur d'un fichier en java : FileReader vs. File.length

Pourquoi fr_count et len seraient-ils différents dans le code ci-dessous ?

FileReader fr = new FileReader(filename);
int c;
long fr_count = 0;
while ( -1 != (c = fr.read()) ) 
    fr_count++;
long len = new File(filename).length();

J'ai utilisé le code ci-dessus sur deux fichiers. Voici les résultats :

test.txt
 FileReader:  263742
 File.length: 265963
output.enc
 FileReader:  146360
 File.length: 212998

6voto

Ryan Stewart Points 46960

fr_count est le nombre de caractères que vous avez lus dans le fichier. len est le nombre d'octets dans le fichier. Ce sont deux choses très différentes. Par exemple, certains caractères sont représentés sur plusieurs octets, et certains encodages utilisent un code de type marque de l'ordre des octets . Dans les deux cas, il y aura des différences entre le nombre de caractères et le nombre d'octets dans un fichier.

3voto

Josh Darnell Points 9830

File.Length renvoie le nombre de Bytes dans le dossier. Compter FileReader.read() vous indique combien de caractères il y a dans le fichier.

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