我正在搜索一个包含大约450个文件的目录,每个文件大小约为20kb。以下是我的方法:
public void search(String searchWord) throws IOException
{
this.directoryPath = FileSystems.getDefault().getPath(this.directoryString);
this.fileListStream = Files.newDirectoryStream(this.directoryPath);
int fileCount = 0;
for(Path path : this.fileListStream)
{
String fileName = path.getFileName().toString();
if(!fileName.startsWith("."))
{
BufferedReader br = Files.newBufferedReader(path, Charset.defaultCharset());
String line;
while((line = br.readLine()) != null)
{
System.out.println(fileName + ": " + line);
}
fileCount++;
br.close();
}
}
System.out.println("File Count: " + fileCount);
}
我的目标是逐字逐句地查找searchWord的匹配项,并打印出行号和找到它的文件名。
我的问题是,我想知道是否应该将行拆分为数组,并在数组中搜索单词并将其添加到列表中。还是应该将整个文件扫描到一个单词数组中,然后搜索单词并将其添加到列表中?或者这甚至无关紧要?如果有更好的方法,请让我知道!由于资源有限,我正在尽可能高效地完成此操作。