计算java中的文件长度:FileReader与File.length

时间:2011-09-04 02:52:21

标签: java file filereader

为什么fr_count和len在下面的代码中会有所不同?

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

我在两个文件上使用了上面的代码。结果如下:

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

2 个答案:

答案 0 :(得分:6)

fr_count是您从文件中读取的字符数。 len是文件中的字节数。他们是两个非常不同的东西。例如。一些字符以多个字节表示,一些编码使用byte order mark。这两种方法都会产生字符数和文件中字节数之间的差异。

答案 1 :(得分:3)

File.Length返回文件中Bytes的数量。计数FileReader.read()告诉您文件中有多少个字符。