📅  最后修改于: 2023-12-03 15:31:34.437000             🧑  作者: Mango
在Java中,我们可以使用File类来读取目录。
要读取一个目录中的所有文件和子目录,可以使用File类的listFiles()方法。
File folder = new File("path/to/folder");
File[] files = folder.listFiles();
if(files != null){
for(File file : files){
if(file.isDirectory()){
// 处理子目录
}else{
// 处理文件
}
}
}
如果目录为空或者路径指向一个文件而不是一个目录,则listFiles()方法会返回null。
如果存在嵌套的子目录,我们可以使用递归来读取所有子目录中的文件及子目录。下面是递归方法的示例代码:
public static void readFolder(File folder){
File[] files = folder.listFiles();
if(files != null){
for(File file : files){
if(file.isDirectory()){
// 递归处理子目录
readFolder(file);
}else{
// 处理文件
}
}
}
}
如果要仅获取目录中特定类型的文件,可以使用FilenameFilter类过滤文件。下面是示例代码:
File folder = new File("path/to/folder");
File[] files = folder.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
if(files != null){
for(File file : files){
// 处理.txt文件
}
}
使用File类,我们可以读取目录中的所有文件和子目录,递归读取所有子目录中的文件及子目录,以及获取目录中的特定类型的文件。根据实际需求,我们可以选择不同的方法来读取目录。