Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Archivos de lectura Java

La lectura de archivos es una tarea habitual en la programación Java, a menudo necesaria para procesar y manipular datos. Java proporciona varias clases y métodos para leer archivos de forma eficaz, con opciones para manejar datos de texto y binarios.

Clases clave para la lectura de archivos

  • FileReader: Sirve para leer archivos de texto de forma sencilla y eficaz.
  • BufferedReader: Envuelve FileReader para leer texto de un flujo de entrada de caracteres, almacenando los caracteres en búfer para una lectura eficiente de caracteres, matrices y líneas.
  • Archivos: Forma parte del paquete java.nio.file y proporciona métodos estáticos para leer archivos y directorios.
  • Escáner: Una clase versátil utilizada para analizar tipos primitivos y cadenas mediante expresiones regulares.

Ejemplos

Ejemplo 1: Utilizar FileReader y BufferedReader


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderExample {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

En este ejemplo, FileReader y BufferedReader se utilizan para leer un archivo de texto línea por línea. La declaración try-with-resources garantiza que el archivo se cierre después de la lectura.

Ejemplo 2: Utilizar la clase Archivos


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FilesExample {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("example.txt"));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

La clase Files proporciona una forma directa de leer todas las líneas de un archivo en List. Este método es eficaz para archivos pequeños.

Ejemplo 3: Utilizar el escáner


import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(new File("example.txt"))) {
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
    

La clase Scanner se utiliza aquí para leer un archivo línea por línea. Es útil para analizar datos con delimitadores específicos.

Consejos y buenas prácticas

  • Gestión de recursos: Utiliza try-with-resources para que los flujos de archivos se cierren automáticamente, evitando fugas de recursos.
  • Tratamiento de excepciones: Maneja siempre IOException y FileNotFoundException cuando trabajes con operaciones de E/S de archivos.
  • Codificación de caracteres: Ten en cuenta la codificación de caracteres al leer los archivos. Utiliza InputStreamReader con un conjunto de caracteres especificado si es necesario.
    
    new BufferedReader(new InputStreamReader(new FileInputStream("example.txt"), "UTF-8"));
                
  • Tamaño del archivo: Para archivos grandes, considera la posibilidad de leer en trozos o utilizar archivos mapeados en memoria para evitar problemas de memoria.
  • Concurrencia: Si varios subprocesos necesitan leer el mismo archivo, considera la posibilidad de utilizar bloques sincronizados o clases seguras para subprocesos para gestionar el acceso.

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis