jueves, 23 de febrero de 2017

Ficheros de texto en Java

Un fichero de texto está formado por secuencias de caracteres, organizados en líneas de igual o distinta longitud.

Todos los datos que aparecen en estos ficheros están formados por caracteres.
CREAR Y ESCRIBIR EN FICHEROS DE TEXTO EN JAVA
Para escribir en un fichero de texto utilizaremos dos clases:
FileWriter y PrintWriter.
La clase FileWriter permite tener acceso al fichero en modo escritura.
Para crear objetos FileWriter podemos utilizar los constructores:

FileWriter(String path)
FileWriter(File objetoFile);

El fichero se crea y si ya existe su contenido se pierde.
Si lo que necesitamos es abrir un fichero de texto existente sin perder su contenido y añadir más contenido al final utilizaremos los constructores:

FileWriter(String path, boolean append)
FileWriter(File objetoFile, boolean append)

Si el parámetro append es true significa que los datos se van a añadir a los existentes. Si es false los datos existentes se pierden.
La clase FileWriter proporciona el método write() para escribir cadenas de caracteres aunque lo normal es utilizar esta clase junto con la clase PrintWriter para facilitar la escritura.
La clase PrintWriter permite escribir caracteres en el fichero de la misma forma que en la pantalla.
Un objeto PrintWriter se crea a partir de un objeto FileWriter.
Ejemplo de escritura de un fichero de texto:
Programa Java que lee texto por teclado y lo escribe en un fichero de texto. La lectura de texto por teclado acaba cuando se lee la cadena FIN.
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class File11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        PrintWriter salida = null;
        try {
            salida = new PrintWriter("c:/ficheros/datos.txt");
            String cadena;
            System.out.println("Introduce texto. Para acabar introduce la cadena FIN:");
            cadena = sc.nextLine();
            while (!cadena.equalsIgnoreCase("FIN")) {
                salida.println(cadena);
                cadena = sc.nextLine();
            }
            salida.flush();
        } catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        } finally {         
            salida.close();
        }
    }
}
El método flush() provoca que se escriban en el fichero los datos que puedan haber en el buffer de salida.
El método close() cierra la conexión con el fichero y libera los recursos que está usando la conexión.

No hay comentarios:

Publicar un comentario