Leer Archivos De Texto En Java
Introducción
Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos que guardemos no son volátiles (a diferencia de la memoria) y por lo tanto podemos verlos después de reiniciar la computadora o en otra computadora. Los archivos de computadora, por convención cuentan con diferentes extensiones. Porlo regular las extensiones son de tres letras y nos permiten saber el tipo de archivo. Es importante cuando utilizamos archivos pensar en que el tipo de extensión sea congruente con el archivo.
Archivos de Texto
Para poder leer archivos de texto en Java debemos crear un objeto de tipo BufferedReader. BufferedReader es una clase que contiene métodos predefinidos para poder leerde una secuencia de bits. Para poder guardar archivos de texto en Java debemos crear un objeto de tipo PrintWriter. PrintWriter es una clase que contiene métodos predefinidos para meter datos a una secuencia de bits. Puedes hacer click en los nombres para ver el API que contiene muchos métodos útiles.
BufferedReader
El constructor que vamos a utilizar para crear un BufferedReader es:BufferedReader fileIn = new BufferedReader(new FileReader(fileName);
Ya que tenemos el objeto tipo BufferedReader podemos utilizar varios métodos para leer, él más común es:
fileIn.readLine();
Este método lee una línea y la devuelve o devuelve null si llegamos al final del archivo y no hay nada que leer.
BufferedReader
Es
importante recordar cuando trabajamos con archivosque cada que leemos o escribimos a un archivo debemos hacerlo dentro de un try. Un try es un manejador de excepciones, cuando sucede un error en la ejecución de nuestro programa ejecuta ciertas instrucciones dependiendo del tipo de error que sucedió.
try { int n1 = 1; int n2 = 0;
Primero ponemos try y abrimos una llave
Uso de try
double r = n1 / n2; //Aqui hay un error porque //nopodemos dividir entre 0!!! } catch (ArithmeticException ae) { //Manejar la excepcion; n1 / n2 podría ser una división entre } finally { cero, por lo tanto es una buena System.out("Ya termine!"); práctica de programación utilizar un } try para que si fue una división entre 0 el programa maneje el error (regularmente imprimiendo un mensaje de error). Lo que se encuentra en un finally se ejecuta hastael final, sin importar si el código se ejecutó sin errores.
BufferedReader
Los
dos tipos de excepciones que debemos atrapar al leer archivos son IOException (se genera normalmente porque el disco está lleno o protegido contra escritura/lectura) y FileNotFoundException (se genera porque el nombre de archivo no es válido)
try { BufferedReader fileIn = new BufferedReader( newFileReader(fileName)); String s = fileIn.readLine(); } catch (IOException ioe) { } catch (FileNotFoundException fnfe) { }
BufferedReader
Otro Este
método muy importante es el método
fileIn.read();
método nos permite leer un solo carácter del flujo de datos. El método regresa un número (int) del 1 al 65535 si puede leer del archivo o regresa -1 si no.
try { BufferedReader fileIn = newBufferedReader( new FileReader(fileName)); int i = fileIn.read(); //Iniciamos una variable a la que //vamos a leer char c = (char) i; //Como lo que leimos es un int debemos // hacer un cast a char } catch (IOException ioe) { } catch (FileNotFoundException fnfe) { }
BufferedReader
Ya
que el método read nos devuelve -1 cuando se termina el archivo podemos utilizar un while que siga leyendocaracteres hasta encontrar el final de archivo.
try { BufferedReader fileIn = new BufferedReader( new FileReader(fileName)); int i = 0; while (i != -1) { i = fileIn.read(); char c = (char) i; } } catch (IOException ioe) { } catch (FileNotFoundException fnfe) { }
Ejercicios
Vamos
a hacer un ejercicio para entender mejor como funcionan los archivos de texto. El ejercicio consiste en leer...
Regístrate para leer el documento completo.