leer archivo Java

Leer archivos de texto Java: UTF-8 y recursos que se cierran

Elige readString o un recorrido con líneas según el tamaño y controla la ruta que lees.

Tipo: Guía práctica Lectura: 4 min Actualizado: 2026-11-03
Ejemplo visual para Leer un archivo en Java con rutas, charset y cierre automático

Guía y comprobaciones

Leer un texto pequeño completo

Desde Java 11, Files.readString permite leer el contenido con una codificación explícita. Este programa espera un archivo ejemplo.txt en el directorio de ejecución.

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
public class Ejemplo {
    public static void main(String[] args) throws IOException {
        String texto = Files.readString(Path.of("ejemplo.txt"), StandardCharsets.UTF_8);
        System.out.println(texto);
    }
}

El directorio de ejecución no tiene por qué coincidir con la carpeta del archivo fuente. Al depurar una ruta relativa, comprueba dónde se lanzó el programa antes de copiar el archivo a varios directorios.

Recorrer sin reunir todo el texto

Para un archivo grande puede ser preferible procesar líneas. El flujo que devuelve Files.lines debe cerrarse; try con recursos expresa esa obligación.

try (var lineas = Files.lines(Path.of("ejemplo.txt"), StandardCharsets.UTF_8)) {
    long noVacias = lineas.filter(linea -> !linea.isBlank()).count();
    System.out.println(noVacias);
}

Este segundo fragmento se coloca en un método que gestione las excepciones de entrada/salida y utiliza los imports del programa anterior. No carga deliberadamente todas las líneas en una lista.

Ausencia, permisos y codificación

Un archivo vacío es un contenido válido; un archivo inexistente es un fallo distinto. No conviertas cualquier excepción en una cadena vacía porque perderías esa diferencia. Si el texto aparece alterado, comprueba la codificación con la que se escribió: elegir UTF-8 al leer no repara bytes que ya pertenecen a otra codificación.

Una ruta recibida de fuera

Si una aplicación permite seleccionar nombres de archivo, restringe las rutas al directorio y permisos previstos. Un ejemplo de consola que lee un archivo de ejercicios no debe convertirse sin controles en un servicio que acepte rutas arbitrarias.

Prueba un archivo de tres líneas con una en blanco, uno vacío y uno inexistente. Para contar, define además si una línea con espacios es vacía: isBlank y isEmpty expresan decisiones diferentes.

Preguntas frecuentes

¿readString sirve para cualquier tamaño?

Lee el contenido completo en memoria. Para archivos grandes, considera un procesamiento por líneas u otro enfoque acotado.

¿La ruta es relativa al .java?

No necesariamente. Una ruta relativa se resuelve desde el directorio de ejecución del proceso.

Documentación oficial

R

Autora de la guia

Redacción de Línea de Código

Publicación independiente de programación y trámites digitales

Guías con ejemplos y referencias oficiales para aprender programación y preparar gestiones digitales. Las solicitudes se completan en el organismo responsable.

Actualizado: 2026-11-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.