用java完成在指定目录所有文件搜索指定字符串,字符串可能在多个文件的多个位置出现,要返回在哪个文件的第几行出现过
时间: 2023-02-09 07:16:45 浏览: 67
这是一个典型的文件搜索问题,可以使用 Java 的 `File` 类和 `Scanner` 类来实现。
首先,使用 `File` 类的 `listFiles` 方法获取指定目录下的所有文件列表。然后,对于每个文件,使用 `Scanner` 类打开文件并扫描文件中的每一行,看是否包含要搜索的字符串。如果找到了,就打印出文件名和行号。
这里是一个例子:
```java
import java.io.File;
import java.util.Scanner;
public class Search {
public static void main(String[] args) throws Exception {
// 要搜索的目录
File dir = new File("/path/to/dir");
// 要搜索的字符串
String query = "hello";
// 获取目录下的所有文件
File[] files = dir.listFiles();
for (File file : files) {
// 打开文件
Scanner sc = new Scanner(file);
int lineNumber = 0;
// 逐行扫描文件
while (sc.hasNextLine()) {
lineNumber++;
String line = sc.nextLine();
// 如果行中包含要搜索的字符串,则打印文件名和行号
if (line.contains(query)) {
System.out.println(file.getName() + ": line " + lineNumber);
}
}
sc.close();
}
}
}
```
这个例子中,我们在指定目录下的所有文件中搜索字符串 "hello",并输出包含字符串的文件名和行号。
希望这个例子能帮到你!