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

计算java中的文件长度:FileReader与file.length,java,file,filereader,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:

为什么在下面的代码中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

fr\u count
是从文件中读取的字符数
len
是文件中的字节数。他们是两个完全不同的东西。例如,某些字符以多个字节表示,而某些编码使用一个字节。这两种方法都会造成文件中字符数和字节数的差异。

文件。Length
返回文件中的
字节数。计数
FileReader.read()
就是告诉你文件中有多少个字符。

FileInputStream
替换
FileReader
,并启发自己。