Lectura de archivos con BufferedReader en Java
Clase 26 de 29 • Curso de Expresiones Regulares
Contenido del curso
El lenguaje: caracteres, operadores, y construcciones
- 5

El punto en regex: selecciona cualquier carácter
09:55 min - 6

\d \w \s: las 3 clases que localizan todo
13:55 min - 7

Cuantificadores regex: *, + y ? en acción
17:42 min - 8

Contadores en expresiones regulares
14:02 min - 9

Greedy vs lazy en regex: cuándo usar cada uno
07:47 min - 10

Negaciones con gorrito en expresiones regulares
06:49 min - 11

Cómo detectar números telefónicos sin letras
01:06 min - 12

Cómo procesar archivos CSV con millones de líneas
08:00 min
Uso práctico de Expresiones Regulares
- 13

Filtrar logs gigantes con expresiones regulares
07:22 min - 14

Expresiones regulares para URLs HTTP
08:07 min - 15

Regex para validar teléfonos con separadores y extensiones
12:30 min - 16

Validación de emails con regex
13:42 min - 17

Validación de coordenadas GPS con regex
17:16 min - 18

Validar nombres propios con regex
03:21 min
Usos avanzados en Expresiones Regulares
Expresiones Regulares en lenguajes de programación
- 20

Cómo extraer variables de URLs con regex
10:48 min - 21

Regex en múltiples lenguajes con CSV real
03:29 min - 22

Perl: CSV de fútbol en cero segundos
23:35 min - 23

Expresiones regulares en PHP: preg_match con CSV
09:29 min - 24

Extraer empates de archivos masivos con PHP
16:25 min - 25

Python regex para análisis de archivos CSV
21:58 min - 26

Lectura de archivos con BufferedReader en Java
Viendo ahora - 27

Escapar regex en Java: doble barra
08:48 min - 28

Validación de emails en JavaScript con regex
17:35 min - 29

Grep: filtra archivos masivos con regex
08:18 min
Aprende a leer archivos grandes en Java con un flujo mínimo, estricto y eficaz. Aquí verás cómo estructurar una clase con main, importar lo necesario, iterar líneas con BufferedReader y manejar excepciones con try catch, además de compilar desde terminal. Se destacan errores comunes como escribir String y BufferedReader exactamente, y por qué esa precisión aporta robustez y rendimiento.
¿Por qué Java destaca para leer archivos y ganar rendimiento?
Java es estricto y robusto: exige importar solo lo que se usa y escribir cada tipo con precisión. Esa disciplina permite leer grandes cantidades de información con velocidad. Para el objetivo mostrado, se simplifica la estructura: sin paquetes ni convention over configuration por ahora, se crea una clase llamada Regex con main que imprime cada línea de un CSV. Aún no se aplican patrones de expresiones regulares; la meta es validar el flujo de lectura y desempeño.
Puntos clave: - Enfoque mínimo: clase Regex con main que imprime líneas. - Lectura eficiente con BufferedReader sobre FileReader. - Importaciones puntuales: nada innecesario. - Sin extracción de datos ni patrones todavía: foco en velocidad.
¿Cómo implementar el flujo con BufferedReader y FileReader paso a paso?
Se define el archivo a leer (files/results.csv), se crea un BufferedReader y se itera línea por línea con readLine hasta null. Cada línea se imprime con System.out.println para verificar que todo funcione.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Regex {
public static void main(String[] args) {
String file = "files/results.csv";
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Aspectos destacados del flujo: - Clase y archivo coinciden: Regex en Regex.java. - Ruta explícita: files/results.csv. - Bucle while con readLine hasta null. - Salida estándar con System.out.println. - Sin patrón de regex todavía: solo verificación.
¿Cómo compilar y ejecutar desde la terminal?
Comandos:
javac Regex.java
java Regex
Verificación del volumen leído: número de líneas esperado impreso, por ejemplo, 39 909 líneas.
¿Qué detalles y buenas prácticas evitan errores de compilación?
El manejo de excepciones no es opcional: un try sin catch (o sin lanzar otra excepción) “es una carreta sin ruedas”. Hay que capturar y notificar adecuadamente, por ejemplo, mostrando el mensaje de error.
Buenas prácticas observadas: - Importar solo lo necesario: java.io.BufferedReader, java.io.FileReader, java.io.IOException. - Especificidad en tipos y nombres: String con S mayúscula, BufferedReader exacto. - Coincidencia entre nombre de clase y archivo: Regex y Regex.java. - Simplicidad intencional: sin paquete ni convention over configuration al inicio. - Trabajo sin IDE: escribir métodos y clases sin autocompletado fortalece precisión.
Conceptos y habilidades reforzadas: - Lectura de archivos con BufferedReader y FileReader. - Iteración línea por línea con readLine y comprobación contra null. - Impresión con System.out.println para validar flujo. - Manejo de IOException con try catch. - Compilación y ejecución con javac y java desde terminal. - Preparación para expresiones regulares: el patrón se añadirá después.
¿Te encontraste con algún mensaje de error o variación en el conteo de líneas? Comparte tu caso y el comando que usaste para compilar y ejecutar, así podemos ayudarte a afinar tu flujo.