2

为什么 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
4

2 回答 2

6

fr_count是您从文件中读取的字符数。len是文件中的字节数。它们是两种截然不同的东西。例如,一些字符用多个字节表示,一些编码使用字节顺序标记。这两者都会造成文件中字符数和字节数之间的差异。

于 2011-09-04T02:57:21.753 回答
3

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

于 2011-09-04T02:58:00.610 回答