Java 读取文件夹及其子文件夹中的所有文件

在Java开发中,经常需要对文件进行操作,例如读取文件夹及其子文件夹中的所有文件。本文将介绍如何使用Java实现这一功能,并提供相应的代码示例。

1. 准备工作

首先,我们需要导入必要的Java类库。在本示例中,我们将使用java.io.File类来表示文件和文件夹,使用java.util.ArrayList来存储文件路径。

import java.io.File;
import java.util.ArrayList;

2. 定义读取文件的方法

接下来,我们定义一个方法readFiles,该方法接受一个文件夹路径作为参数,递归地读取该文件夹及其子文件夹中的所有文件,并将文件路径存储在一个列表中。

public ArrayList<String> readFiles(String folderPath) {
    ArrayList<String> fileList = new ArrayList<>();
    File folder = new File(folderPath);
    // 检查文件夹是否存在
    if (folder.exists() && folder.isDirectory()) {
        // 遍历文件夹中的所有文件和子文件夹
        File[] files = folder.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isFile()) {
                    // 如果是文件,则添加到列表中
                    fileList.add(file.getAbsolutePath());
                } else if (file.isDirectory()) {
                    // 如果是子文件夹,则递归调用readFiles方法
                    fileList.addAll(readFiles(file.getAbsolutePath()));
                }
            }
        }
    }
    return fileList;
}

3. 使用示例

现在我们已经定义了readFiles方法,接下来我们可以在主方法中调用它,并打印出所有文件的路径。

public static void main(String[] args) {
    JavaFileReader reader = new JavaFileReader();
    String folderPath = "C:/example"; // 替换为你的文件夹路径
    ArrayList<String> files = reader.readFiles(folderPath);
    for (String file : files) {
        System.out.println(file);
    }
}

4. 类图

以下是JavaFileReader类的类图,展示了其属性和方法。

classDiagram
    class JavaFileReader {
        +readFiles(folderPath: String) ArrayList<String>
    }

5. 结语

通过本文的介绍和代码示例,你应该已经了解了如何在Java中读取文件夹及其子文件夹中的所有文件。这种方法可以应用于许多场景,例如文件搜索、文件备份等。希望本文对你有所帮助。

请注意,本文的代码示例仅用于演示目的,实际应用中可能需要根据具体需求进行调整。如果你有任何问题或建议,请随时与我联系。