Java 如何搜索多个大文件而不让cpu发疯?

Java 如何搜索多个大文件而不让cpu发疯?,java,Java,所以我的问题是,我如何搜索500 mb左右的多个文件,当然要尽可能快,但也要尽可能少地使用cpu,还有第二个要求: 函数必须能够返回搜索文本所在的行,这样不仅可以知道文本在文件中,或者多次在文件中,还可以返回搜索文本所在的行 提前感谢blackwolf12333,我建议您在反向索引中创建并搜索它。创作需要多一点时间,但这只是一次性的费用。创建索引后,搜索速度非常快。是您可以使用的流行开源库。也许您应该尝试使用索引器进行快速搜索。如果您不想要Lucene这样的大型库,您可以手动创建索引进行搜索,这

所以我的问题是,我如何搜索500 mb左右的多个文件,当然要尽可能快,但也要尽可能少地使用cpu,还有第二个要求: 函数必须能够返回搜索文本所在的行,这样不仅可以知道文本在文件中,或者多次在文件中,还可以返回搜索文本所在的行


提前感谢blackwolf12333,我建议您在反向索引中创建并搜索它。创作需要多一点时间,但这只是一次性的费用。创建索引后,搜索速度非常快。是您可以使用的流行开源库。

也许您应该尝试使用索引器进行快速搜索。如果您不想要Lucene这样的大型库,您可以手动创建索引进行搜索,这并不困难。

这几乎肯定会受到磁盘性能的限制,而不是CPU性能。嗯,好吧,但当我尝试使用BufferedReader,然后使用:line=br.readLine!=如果没有看到一些代码,Null就无法告诉您出了什么问题。没有什么问题,我只是不知道如何做这样的事情:对于记录,在我的OS X 64位Java 1.6上,readLine是CPU受限的:BufferedReader in=new BufferedReadernew FileReaderfile.txt;弦线;对于int i=0;line=in.readLine!=无效的i++如果line.indexOfa1oe!=-1.System.out.printlni;没有打印任何内容,文件中没有与字符串匹配的内容。我该怎么做?我对这类事情并没有太多经验:PDepends是指你应该找到什么样的数据。例如,您只需要在文档中查找指定单词的计数。您可以对文档执行完全扫描,并在地图中保存每个单词的出现次数。这个过程称为索引,创建的映射称为索引。之后,您可以使用索引而不是文档来检测指定单词的计数。对于其他功能,您可以在索引中保存更复杂的信息。