【问题标题】:counting file length in java: FileReader vs. File.length在java中计算文件长度:FileReader vs. File.length
【发布时间】:2011-09-04 02:52:20
【问题描述】:

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

【问题讨论】:

  • FileInputStream 替换FileReader 并启发自己。

标签: java file filereader


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2012-06-22
      • 2014-02-13
      • 1970-01-01
      相关资源
      最近更新 更多