文章目录
- 🌹问题
- ✨思路
- 🍔代码
- 🛸读取文件,并把文件名保存到文件中
对指定目录下的所有 Java 文件进行编译、打包等处理;
查找指定目录下所有包含特定字符串的 Java 文件;
统计指定目录下所有 Java 文件的行数、字符数等信息;
这个时候我们就要把文件目录读取出来
🌹问题
编写程序,将某一个目录下(比如D:\workspace)(包含子目录)所有的java结尾的文件的绝对路径给输出在控制台。
✨思路
定义一个递归方法,用于遍历指定目录下的所有文件和子目录。
在递归方法中,对于每个文件或目录,判断是否是目录。如果是目录,则递归调用该方法;如果是文件,则判断文件名是否以 “.java” 结尾。
如果是以 “.java” 结尾的文件,则输出该文件的绝对路径。
在主程序中调用递归方法,传入目标目录的路径。
🍔代码
package org.Demo7;import java.io.File;public class file1 {public static void main(String[] args) {String directoryPath = "F:\\java项目"; // 指定工作空间目录// 调用递归方法查找并输出满足条件的文件路径findJavaFiles(directoryPath);}public static void findJavaFiles(String directoryPath) {File directory = new File(directoryPath);// 获取该目录下的所有文件和文件夹File[] files = directory.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {// 如果是文件夹,递归调用该方法findJavaFiles(file.getAbsolutePath());} else {// 判断是否以.java结尾if (file.getName().endsWith(".java")) {// 输出满足条件的文件的绝对路径System.out.println(file.getAbsolutePath());}}}}}
}
如果我们想把文件名保存在其他文件中应该怎么办呢
🛸读取文件,并把文件名保存到文件中
package org.Demo7;
//
//import java.io.File;
//
//public class file1 {
// public static void main(String[] args) {
// String directoryPath = "F:\\java项目"; // 指定工作空间目录
//
// // 调用递归方法查找并输出满足条件的文件路径
// findJavaFiles(directoryPath);
// }
//
// public static void findJavaFiles(String directoryPath) {
// File directory = new File(directoryPath);
//
// // 获取该目录下的所有文件和文件夹
// File[] files = directory.listFiles();
// if (files != null) {
// for (File file : files) {
// if (file.isDirectory()) {
// // 如果是文件夹,递归调用该方法
// findJavaFiles(file.getAbsolutePath());
// } else {
// // 判断是否以.java结尾
// if (file.getName().endsWith(".java")) {
// // 输出满足条件的文件的绝对路径
// System.out.println(file.getAbsolutePath());
// }
// }
// }
// }
// }
//}
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;public class file1 {public static void main(String[] args) {String directoryPath = "F:\\java项目"; // 指定工作空间目录String outputFilePath = "G:\\files.txt"; // 输出文件路径// 调用递归方法查找并输出满足条件的文件路径findJavaFiles(directoryPath, outputFilePath);}public static void findJavaFiles(String directoryPath, String outputFilePath) {File directory = new File(directoryPath);// 获取该目录下的所有文件和文件夹File[] files = directory.listFiles();if (files != null) {try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath, true))) {for (File file : files) {if (file.isDirectory()) {// 如果是文件夹,递归调用该方法findJavaFiles(file.getAbsolutePath(), outputFilePath);} else {// 判断是否以.java结尾if (file.getName().endsWith(".java")) {// 输出满足条件的文件的绝对路径到文件writer.write(file.getAbsolutePath());writer.newLine();}}}System.out.println("Java文件路径已保存到: " + outputFilePath);} catch (IOException e) {e.printStackTrace();}}}
}
运行成功
在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!