[Metodos] Leer y Escribir un archivo de texto.

Leer archivo de Texto

Para leer un archivo de texto vamos a hacer uso de 3 clases java:
  1. 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)

  2. 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).

  3. 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.

  4. 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)
  5. 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