java 查找文件中符合关键字的内容
时间: 2024-04-24 19:23:59 浏览: 18
在 Java 中,你可以使用递归的方式来查找文件中符合关键字的内容。下面是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class FileSearch {
public static void main(String[] args) {
String directory = "path/to/directory"; // 需要查找的目录
String keyword = "your_keyword"; // 需要查找的关键字
searchFiles(directory, keyword);
}
public static void searchFiles(String directory, String keyword) {
File dir = new File(directory);
if (!dir.exists() || !dir.isDirectory()) {
System.out.println("提供的路径不是一个有效的目录!");
return;
}
File[] files = dir.listFiles();
if (files == null || files.length == 0) {
System.out.println("目录是空的!");
return;
}
for (File file : files) {
if (file.isDirectory()) {
searchFiles(file.getAbsolutePath(), keyword); // 递归搜索子目录
} else {
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
int lineNumber = 0;
while ((line = br.readLine()) != null) {
lineNumber++;
if (line.contains(keyword)) {
System.out.println("在文件 " + file.getAbsolutePath() +
" 的第 " + lineNumber + " 行找到关键字:" + keyword);
}
}
} catch (IOException e) {
System.out.println("读取文件时出错:" + e.getMessage());
}
}
}
}
}
```
你需要将 `directory` 变量设置为你想要查找的目录的路径,将 `keyword` 变量设置为你想要查找的关键字。然后运行这个程序,它会递归地搜索目录中的所有文件,并在找到关键字的行上打印出文件路径和行号。