- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Hola y buen día a todos mis lectores, al revisar mis entradas hoy, me di cuenta de algo, tengo una que se trata sobre cómo escribir archivos de texto en Java, pero no tengo una sobre como leerlos, quizá para algunos esto sea muy fácil de hacer, pero puede que a otros se les dificulte un poco, así que bueno, aquí les diré como:
“Directo al grano”
Esto es para quienes simplemente quieren saber cómo
hacerlo sin más explicación, yo no recomendaría simplemente copiar el código y “a
lo que sigue”, siempre es bueno saber el porqué usamos tal clase o ponemos las
instrucciones de cierta forma, ya saben, para el futuro, de todos modos, aquí les va el código:
Obviamente para la prueba hay que escribir y guardar algo de texto en un archivo llamado nota.txt en C:/ de lo contrario nos lanzará una excepción del tipo FileNotFoundException en el bloque try/catch (el primer catch en el bloque de arriba). La salida en consola que obtuve al correr el código fue la siguiente:
ESTÁS
EN
EN
EL
BLOG
DE
BARO
:D
¿Quiere
saber más?
Para quienes les interese, en esta sección veremos paso a paso
el código de arriba y le daremos algunas mejoras (se aceptan sugerencias abajo)
así que aquí va la revisión y explicación del código.
Primero que nada vemos varias
líneas que inician con la palabra reservada import,
para quienes no saben, la palabra reservada import es para utilizar la clase o
paquete escrito después del mismo, en este caso: java.io.BufferedReader, java.io.File,
java.io.FileNotFoundException, etc.
Después vemos el nombre de la clase, que es LectorTexto, claro que podemos ponerle el nombre que queramos, no
importa, después vemos el comentario para el método leerTexto, ahí normalmente ponemos una breve descripción de lo que
hace el método, el o los parámetros y lo que regresa (si no es void).
El método leerTexto
Para empezar el método leerTexto,
pide como argumento un String, en el cual pondremos la ruta del archivo que
queremos leer, y lo que devuelve (como lo dice el comentario del método) es el
texto dentro del archivo. Ahora, para convertir el texto pasado como argumento
en un archivo que se pueda leer, lo ponemos en el constructor de File de esta forma: File archivo = new File(ruta); Y listo, la ruta que fue pasada como
argumento ahora es un archivo que apunta a nuestro texto.
Pero tener un archivo apuntando a nuestra nota no es suficiente, se
necesita de alguien que lo lea, en este caso utilizamos la clase FileReader la cual nos permite leer el
archivo que pasemos como argumento en su constructor: FileReader fr = new FileReader(archivo); Y con esto tenemos el
lector, el cual por desgracia solo nos devuelve enteros al leer el archivo, que
se podrían convertir en texto, pero “¿No podría hacerlo otro?” En este caso,
sí, utilizamos BufferedReader para
hacer más eficiente la lectura y que se haga en líneas, lo cual nos facilita
mucho las cosas, para poner un búfer a nuestro lector de archivo (FileReader) hacemos esto: BufferedReader bf = new BufferedReader(fr);
¡Perfecto! Ahora tenemos el búfer que nos ayudará mucho en la lectura del
archivo, pero no es suficiente, ¿Qué pasa si el archivo contiene varias líneas?
Para eso tenemos el ciclo while en
nuestro código y escribimos las sentencias necesarias para hacer que el búfer
haga la lectura de todas las líneas en el archivo (ver el código de arriba) y
opcionalmente, devolverlas en líneas separadas gracias a la propiedad line.separator, utilizamos también la
clase StringBuffer para ir agregándole
el texto por cada línea que sea leída por el búfer (y que no sea null).
Al finalizar el ciclo while
asignamos a nuestro atributo texto lo
que hay dentro del StringBuffer, así: texto
= sbf.toString();
Mejorando el lector de
archivo
Nuestra pequeña y simple clase lee los archivos de texto de manera muy
eficiente, pero, lo que no es tan eficiente, es la forma en que señalamos que
archivo queremos leer, en especial con rutas muy largas, pero afortunadamente
hay una solución, ¡Un selector de archivo! Que permitirá al usuario elegir el
archivo que se quiere leer de una forma mucho más cómoda y fácil.
Agregando un selector de
archivo
Agregar un selector de archivo a nuestro lector de texto será algo muy
fácil, crearemos un nuevo método llamado lanzarSelector()
que mostrará el selector de archivo que va a devolver la ruta del archivo que
se ha seleccionado para después leer el texto dentro de él y mostrarlo ya sea
en la consola o en una interfaz con JTextField, JLabel o quizá un JTextArea (ese
proyecto de la interfaz te lo dejo a ti).
A continuación se muestra el nuevo código ya con el selector de archivo:
Esto
facilita muchísimo las cosas, ahora el método lanzarSelector lo hace todo, lo mejor es que podemos usar este
código para muchas cosas, tanto el lector de texto, como el selector de
archivo. Otra cosa muy importante, es que, el lector de archivo no lee
solamente archivos con extensión *.txt,
puede leer cualquier archivo y mostrarlo en forma de texto, pruébalo.
Y bien, esto es todo por este artículo, espero les haya gustado, y ya saben, suscríbanse en la parte superior derecha con su email si les gustan mis entradas, dudas, peticiones, comentarios o criticas son bien recibidas en la parte de abajo, saludos a todos :D.
Archivo de texto en java
eclipse ide
Entradas y Salidas
I/O
java
java poo
Leer archivo de texto
poo
Principiantes java
Programación
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
Publicar un comentario