Leer archivo de Texto
Para leer un archivo de texto vamos a hacer uso de 3 clases java:
- En primer lugar deberemos tener la ruta especifica del archivo a leer, y creamos un objeto de clase File, con su constructor:
- Crea una nueva instancia del un objeto File convirtiendo el parámetro pathName en una vía de acceso abstracta.
- Parámetros:
- String pathname - la ruta especifica donde se encuentra el archivo.
- Arroja:
- NullPointerException - Si la cadena del parámetro es nula (null)
- Creamos un objeto de la clase FileReader, pasandole como parametro el objeto File creado anteriormente en su constructor:
- Crea un objeto de la clase FileReader con el objeto File pasado por paramétro.
- Paramétros:
- File fileName - el nombre del objeto File para ser leido.
- Aroja:
- FileNotFoundException - Si no existe el archivo, se encuentra en un directorio inalcanzable (Permisos), o por alguna otra razón no se pueden abrir para la lectura (Ejemplo esta en usándose por otro programa).
- Creamos un buffer de la clase BufferefReader, pasandole como parametro el objeto FileReader creado anteriormente en su constructor:
- public BufferedReader(Reader in)
- Crea un búfer par un flujo de caracteres de entrada que utiliza una memoria intermedia de entrada de tamaño predeterminado.
- Parametros:
- Reader in - Un objeto de la clase Reader, de la cual hereda (haciendo posible usar) la clase FileReader.
- Por ultimo (Crear un objeto String) e ir iterando mediante un while, usando como condición distinta de nula un método de la clase BufferedReader:
- public String readLine() throws IOException
- Lee una línea de texto. Se considera que una linea terminada cuando hay un salto de línea ('\ n'), un retorno de carro ('\ r'), o un retorno de carro seguido inmediatamente por un salto de línea.
- Retorna:
- Una cadena que contiene el contenido de la línea, sin incluir los caracteres de fin de línea, o null si se ha alcanzado el final de la secuencia
- Arroja:
- IOException - SI ocurre un error I/O (Input/Output - Entrada/Salida)
- De aqui en mas, se puede ir imprimiendo cada linea en la consola, guardar el contenido en un String, Array, Lista, etc
File archivo = new File(rutaEspecifica); FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); String cadena; while ((cadena = br.readLine()) != null) { //TODO }
Metodo para mostrar en consola el contenido de un archivo de texto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public static void leerTXT(String rutaEspecifica) { String cadena; File archivo = new File(rutaEspecifica); if (archivo.exists()) { try { FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); while ((cadena = br.readLine()) != null) { System.out.println(cadena); } br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } else { System.err.println("El sistema no pudo hallar la ruta especifica."); } } |
- Metodo para devolver como String el contendio de un archivo de texto./li>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public static String TXT2String(String rutaEspecifica) { String cadena; String cadenaRetorno = ""; File archivo = new File(rutaEspecifica); if (archivo.exists()) { try { FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); while ((cadena = br.readLine()) != null) { cadenaRetorno = cadenaRetorno.concat(cadena) + "\n"; } br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } else { System.err.println("El sistema no pudo hallar la ruta especifica."); } return cadenaRetorno; } |
La llamada a estos metodos podrian ser:
leerTXT("C:\\blog\\archivoTexto.txt");
De seguir siendo estaticos seria asi, sino un objeto que creemos tendra que invocarlos.
No hay comentarios:
Publicar un comentario