编写一个 Java 程序,实现一个简单的文件查找器,根据用户输入的目录和文件名,查找并输出匹配的文件路径。 **解题思路:** 使用 File 类遍历目录和子目录,使用 Scanner 类从控制台接收用户输入的目录和文件名。
时间: 2024-02-15 08:04:52 浏览: 66
好的,我可以帮你解答这个问题。
以下是 Java 程序的实现过程:
1. 导入所需的类
```java
import java.io.File;
import java.util.Scanner;
```
2. 定义一个方法用于查找文件
```java
public static void searchFile(File directory, String fileName) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
searchFile(file, fileName);
} else {
if (file.getName().matches(fileName)) {
System.out.println(file.getAbsolutePath());
}
}
}
}
}
```
该方法接收一个目录和文件名作为参数,使用 File 类的 listFiles() 方法获取目录下的所有文件和子目录,如果是目录则递归调用自身,如果是文件则判断文件名是否匹配传入的文件名,如果匹配则输出文件路径。
3. 主方法中调用查找文件的方法
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入目录路径:");
String directoryPath = scanner.nextLine();
System.out.print("请输入文件名:");
String fileName = scanner.nextLine();
File directory = new File(directoryPath);
searchFile(directory, fileName);
}
```
该方法使用 Scanner 类从控制台接收用户输入的目录路径和文件名,创建一个 File 对象表示目录,然后调用查找文件的方法。
完整的 Java 程序如下:
```java
import java.io.File;
import java.util.Scanner;
public class FileSearcher {
public static void searchFile(File directory, String fileName) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
searchFile(file, fileName);
} else {
if (file.getName().matches(fileName)) {
System.out.println(file.getAbsolutePath());
}
}
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入目录路径:");
String directoryPath = scanner.nextLine();
System.out.print("请输入文件名:");
String fileName = scanner.nextLine();
File directory = new File(directoryPath);
searchFile(directory, fileName);
}
}
```
通过这个程序,你可以输入目录和文件名来查找文件,并输出匹配的文件路径。希望能对你有所帮助!
阅读全文