【问题标题】:Difficulty while finding no of lines in a file using java?使用java在文件中找不到行时遇到困难?
【发布时间】:2010-02-25 11:35:38
【问题描述】:

虽然查找文件中没有行,但它会显示更多行数。

例如在我的 word 文档中只有 26 行的文件中。但是当使用 java 程序计数时,它显示 118。

    File f=new File("C:\\Users\\os05\\Desktop\\Venkatesan(13-02-10).doc");

    FileReader fr = new FileReader(f);

    LineNumberReader ln = new LineNumberReader(fr);

    int count = 0;

    while (ln.readLine() != null)
    {

      count++;
    }
    System.out.println("No of lines:"+count);

上面的代码,是如何计算的。线......?

【问题讨论】:

  • 那个word文档是Microsoft Word文档吗?
  • 是的,它是 Microsoft Word 文档..
  • 你应该接受一些答案
  • 尝试在记事本中打开您的 Word 文档。您的 Java 代码必须通读它。可怜的小。 :) 尝试阅读你想做的类的 javadoc。然后你会看到 FileReader 不是 UniversalDocumentReader,只是一个简单的文件字节到字符串转换器(使用你之前设置的一些编码)和 LineNumberReader 一个识别行尾字符的阅读器。
  • @Mark 0/5 没什么大不了的,尤其是在 5 天内。

标签: java line-numbers


【解决方案1】:

您试图将 Word 文档视为纯文本文件 (*)。

然而,Word 文档是具有专有格式的二进制文件,您需要正确解释该文件以提取其中包含的信息。

有一些库可以处理此类文件,例如 Apache POI。

如果您只是为了实验和学习而这样做,那么坚持使用简单的文本文件(例如记事本生成的)可能会更容易。

(*) 即使there is no such thing as plain text.

【讨论】:

    【解决方案2】:

    如果是 Microsoft Word 文档,它们是二进制文件,你不能那样做。

    您需要为 microsoft word 文件找到合适的 api。

    【讨论】:

      【解决方案3】:

      您的问题是您正在查看一个 doc 文件 - 该文件不是以纯文本形式保存的。为了查找 microsoft word 文件中的行数,您将不得不使用专用库...

      文件格式可在 www.wotsit.org 获得,但我怀疑仅此一项对您有帮助...

      【讨论】:

        【解决方案4】:

        您也可以使用 open office api 来访问 Office 文档的内容。 FAQ on OpenOffice.org API

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-20
          • 1970-01-01
          • 2021-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-25
          • 1970-01-01
          相关资源
          最近更新 更多