【问题标题】:My byte array length is not equal to the file .txt file size我的字节数组长度不等于文件 .txt 文件大小
【发布时间】:2016-03-06 04:56:37
【问题描述】:

所以基本上我想要做的是让 JProgressBar 从 0-100% 变为 100% 是一个完全读取的 .txt 文件,其中包含 9999 行单词。

我试图通过将分段为字节的巨大字符串存储到字节数组中并使用字节数组的长度更新 JPBar 来做到这一点。

令我惊讶的是,JProgressBar 停止在 91%。后来我决定把这些值打印出来,发现文件长度比字节数组长度大了~10000。

有人可以向我解释为什么会出现这种情况,以及我怎样才能正确处理?我意识到我很可能错过了关于阅读和计算字符的概念。代码sn-p如下。

谢谢!

bar.setMinimum(0);
bar.setMaximum((int)file.length());

try{
     while((check = reader.readLine()) != null){

         words = words + check + "\n";
         stringCount = words.getBytes();
         bar.setValue(stringCount.length);

     }      
  }catch(Exception e){}

  System.out.println(stringCount.length);
  System.out.println(file.length());

【问题讨论】:

    标签: java byte reader


    【解决方案1】:

    额外的文件内容很可能是 Windows 样式行结尾的另一部分。 Windows 上文件中的标准行结尾是 \r\n,但您的内存字符串仅包含 \n。这将在每行结尾累积 1 个字符的差异,并且 9999 行与您报告的差异相匹配。

    【讨论】:

    • 谢谢!解决了它:)
    猜你喜欢
    • 2018-10-13
    • 2020-03-20
    • 1970-01-01
    • 2020-06-04
    • 2011-09-01
    • 2013-08-09
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多