在日常的软件开发中,经常需要处理文件操作。假设我们有一个需求:从一个包含大量JSON文件的文件夹中提取出所有的JSON文件以进行进一步处理。本文将介绍如何利用Java编写一个高效的方法来递归查找指定后缀名的文件。
代码实现:
java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileProcessor {
/**
* 查找指定文件夹下的所有指定后缀文件
*
* @param directoryPath 文件夹路径
* @param fileSuffix 文件夹后缀
* @return List<File>
*/
public List<File> findJSONFiles(String directoryPath, String fileSuffix) {
List<File> jsonFiles = new ArrayList<>();
File directory = new File(directoryPath);
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile() && file.getName().toLowerCase().endsWith(fileSuffix.toLowerCase())) {
jsonFiles.add(file);
} else if (file.isDirectory()) {
// 递归调用,处理子目录
jsonFiles.addAll(findJSONFiles(file.getAbsolutePath(), fileSuffix));
}
}
}
}
return jsonFiles;
}
public static void main(String[] args) {
FileProcessor processor = new FileProcessor();
String folderUrl = "C:\\Users\\yz\\Desktop\\json\\history\\history\\";
List<File> jsonFiles = processor.findJSONFiles(folderUrl, ".json");
// 输出所有找到的JSON文件路径
jsonFiles.forEach(file -> System.out.println(file.getPath()));
}
}
使用说明:
在上面的代码中,我们首先定义了一个FileProcessor
类,其中包含了一个findJSONFiles
方法,用于查找指定文件夹下的所有指定后缀名的文件。然后在main
方法中,我们创建了一个FileProcessor
对象,并调用findJSONFiles
方法来查找指定文件夹中的所有JSON文件。最后,我们输出了所有找到的JSON文件的路径。
结论:
通过这个简单而有效的Java方法,我们能够轻松地从指定的文件夹中提取出所有的JSON文件。这种方法不仅可以用于处理历史数据导入的场景,还可以应用于其他需要递归查找文件的情况,为文件操作提供了便利和效率。