对指定目录下的所有 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();
}
}
}
}
在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!