介绍
在这个项目中,你将学习如何使用 Java 在目录中搜索文本文件。本项目将指导你完成从用户获取输入路径、验证输入、查找目录中的所有文本文件以及打印其名称的过程。
👀 预览
请输入读取路径:/home/labex/project/files
找到的文本文件:
file1.txt
file3.txt
file6.txt
🎯 任务
在这个项目中,你将学习:
- 如何使用
Scanner类获取用户输入的目录路径 - 如何使用
File类验证输入路径 - 如何创建自定义的
FilenameFilter来过滤文本文件 - 如何使用
listFiles()方法在目录中找到所有文本文件 - 如何遍历找到的文本文件并打印其名称
🏆 成果
完成本项目后,你将能够:
- 使用
Scanner类获取用户输入的目录路径 - 使用
File类验证输入路径 - 实现自定义的
FilenameFilter来过滤文本文件 - 利用
listFiles()方法检索目录中的所有文本文件 - 遍历找到的文本文件并打印其名称
获取输入路径
在这一步中,你将学习如何使用 Scanner 类从用户那里获取指定的路径。
- 在你的代码编辑器中打开
SelectTxtFile.java文件。 - 在
main方法中,创建一个新的 Scanner 对象来读取用户输入:
Scanner scanner = new Scanner(System.in);
- 向用户显示一条提示消息,要求输入读取路径:
System.out.print("请输入读取路径:");
- 使用
nextLine()方法读取用户输入并将其存储在path变量中:
String path = scanner.nextLine();
- 读取输入后,关闭 Scanner 以释放资源:
scanner.close();
验证输入路径
在这一步中,你将学习如何使用File类来检查输入路径是否是一个有效的目录。
- 使用用户提供的
path创建一个新的File对象:
File directory = new File(path);
- 使用
exists()方法检查目录是否存在:
if (!directory.exists() ||!directory.isDirectory()) {
- 如果目录不存在或不是一个目录,则打印错误消息并退出程序:
System.out.println("该目录不存在,或者它不是一个目录");
return;
}
在目录中查找文本文件
在这一步中,你将学习如何使用FilenameFilter在目录中查找所有文本文件。
- 创建一个新的
TxtFileFilter类,该类实现FilenameFilter接口:
static class TxtFileFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
}
- 使用
File类的listFiles()方法获取目录中的文件数组,并使用TxtFileFilter对其进行过滤:
File[] files = directory.listFiles(new TxtFileFilter());
打印找到的文本文件
在这最后一步中,你将学习如何遍历找到的文本文件并打印它们的名称。
- 打印一个标题,表明已找到文本文件:
System.out.println("找到的文本文件:");
- 使用
for-each循环遍历files数组,并打印每个文件的名称:
for (File file : files) {
System.out.println(file.getName());
}
大功告成!你现在已经完成了在目录中搜索文本文件的项目。你可以通过运行SelectTxtFile类来测试你的程序。
验证用于文件搜索的 Java 程序
在这一步中,我们将验证用于文件搜索的 Java 程序。
- 打开你的终端,并使用
javac命令编译 Java 文件:
javac SelectTxtFile.java
- 在成功编译 Java 文件之后,使用
java命令执行编译后的程序:
java SelectTxtFile
- 运行 Java 程序时,系统会提示你输入读取路径。提供文本文件所在的目录路径,然后按回车键。
- 如果该目录不存在或不是一个目录,你将收到一条指出问题的消息。
- 如果该目录有效且包含文本文件,程序将显示在该目录中找到的文本文件的名称。
以下是预期输出的一个示例:
请输入读取路径:/home/labex/project/files
找到的文本文件:
file1.txt
file3.txt
file6.txt
通过执行这些步骤,你可以验证用于选择文本文件的 Java 程序的功能。
总结
恭喜!你已完成此项目。你可以在 LabEx 中练习更多实验以提升你的技能。



