【问题标题】:How to check if a stopword file is corrupted or wrong如何检查停用词文件是否损坏或错误
【发布时间】:2014-07-13 19:19:11
【问题描述】:

我有一个包含数百个停用词的文件。例如,我希望能够检查文件是否已被用户修改,或者是否已损坏。

我目前正在考虑的方法是查看行数是否正确。我还可以检查字符总数是否符合预期,甚至是否将整个停用词列表加载到内存中,以检查它们中的每一个是否都在文件中。我想到的所有 3 种方法似乎都效率低下和/或不好,所以我想问问是否有更好的方法。

我正在考虑实现的内容:

private static final int WORD_COUNT = 354;

    public static boolean stopwordsCorrupted(File file) {
        int numOfLines = countLines(file);

        return WORD_COUNT != numOfLines;
    }

【问题讨论】:

  • 查看这个:en.wikipedia.org/wiki/Checksum 这使用文件的哈希函数来检查是否没有进行任何更改
  • 如果有人修改了您的列表,您建议的方法将不起作用;它只检查是否有人添加或删除了一个词。尝试使用校验和。
  • 为什么不直接计算文件的哈希值,然后与参考值进行比较?
  • 与@wastl 的评论一致,请检查:stackoverflow.com/questions/304268/…
  • @wastl 我不知道为什么这没有出现在我的脑海中......所以我基本上找到了校验和,将其保存在内存中,然后进行比较。顺便说一句,您应该将此添加为答案。

标签: java file char boolean newline


【解决方案1】:

查看这个:http://en.wikipedia.org/wiki/Checksum 这使用文件的哈希函数来检查是否没有进行任何更改

Here你也有一个如何使用它的例子。

【讨论】:

    【解决方案2】:

    Java WatchService API 可能对您的问题有所帮助。

    【讨论】:

    • 不幸的是,我对文件或目录的实时轮询不太感兴趣,更像是一次性检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多