有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

计算java中的文件长度: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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    fr_count是从文件中读取的字符数len是文件中的字节数。他们是两个完全不同的东西。例如,一些字符以多个字节表示,一些编码使用byte order mark。这两者都会导致文件中字符数和字节数之间的差异