【发布时间】: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