Avatar ·

Cómo leer todos los archivos de una carpeta en Java? (recursivamente y no)

¡Hola a todos! Acabo de empezar a aprender Java y me encontré con esta tarea: necesito escribir un programa que lea todos los archivos de un directorio específico. Por ejemplo, tengo una carpeta "data" con archivos de texto de diferentes tamaños, y quiero obtener su contenido como strings. Intenté hacerlo yo mismo, pero por ahora no me está saliendo muy bien. Esto es lo que escribí:
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;

public class ReadFiles {
    public static void main(String[] args) {
        File folder = new File("data");
        File[] listOfFiles = folder.listFiles();
        
        for (File file : listOfFiles) {
            if (file.isFile()) {
                BufferedReader reader = new BufferedReader(new FileReader(file));
                String line;
                while ((line = reader.readLine()) != null) {
                    System.out.println(line);
                }
                reader.close();
            }
        }
    }
}