La grabación de caracteres en un fichero de texto se puede realizar a través de la clase FileWriter.

El método constructor de esta clase realiza el proceso de apertura del fichero, y requiere que se indique por parámetro el fichero que se quiere utilizar, que se puede indicar con un valor String que especifique la ruta y el nombre del fichero.

filewriter1

En caso de que no existiera el fichero, éste se crea automáticamente. Hay que tener en cuenta que, si ya existía el fichero, el contenido que tuviera es borrado.

Si se desea que el fichero no sea borrado cada vez que se abre, se debe utilizar otro formato del método constructor de la clase FileWriter.

filewriter3

Se emplearía un segundo parámetro de tipo boolean que indica si los datos se deben añadir a los ya existentes:

fw = new FileWriter(nombreFichero, true);

La operación concreta de escritura se realizar utilizando el método write de la clase FileWriter, que permite escribir un carácter al final de un fichero de texto.

filewriter2

Es importante recordar que al final de las operaciones que se realicen sobre el fichero, éste debe ser cerrado para que se vuelquen todos los datos de la memoria principal al disco duro. Para ello, como en las otras clases de manipulación de ficheros, se debe usar el método close.

filewriter4

En algunos casos puede interesar asegurar el volcado de los datos al disco duro, pero antes de cerrar el fichero, porque se desee continuar operando con él. En ese caso puedes emplear una llamada al método flush que realiza el volcado de los datos sin cerrar el fichero.

La clase FileWriter requiere importar "java.io.FileWriter".

Ejemplo en el que se guardan una serie de caracteres en un fichero de texto:

        String nombreFichero = "nuevo.txt";
//Declarar una variable FileWriter
FileWriter fw = null;
try {
//Abrir el fichero "nuevo.txt" para escribir en él.
//Si no existe se crea, y si existe borra el contenido
fw = new FileWriter(nombreFichero);
//Escribir, como ejemplo, los caracteres de la A a la Z
for(char c='A'; c<='Z'; c++)
fw.write(c);
}
catch(Exception e) {
//Operaciones en caso de error
System.out.println("Error de escritura del fichero");
System.out.println(e.getMessage());
}
finally {
try {
//Cerrar el fichero si se ha abierto
if(fw != null)
fw.close();
}
catch (Exception e) {
System.out.println("Error al cerrar el fichero");
System.out.println(e.toString());
}
}
        try
        {
           //Abrir el fichero "nuevo.txt" para escribir en él.
           //Si no existe se crea, y si existe borra el contenido
           FileWriter fw = new FileWriter("nuevo.txt");
           //Escribir, como ejemplo, los caracteres de la A a la Z
           for(char c='A'; c<='Z'; c++)
               fw.write(c);
            //Cerrar el fichero
           fw.close();
        }
        catch(Exception e)
        {
           //Operaciones en caso de error
           System.out.println("Error de escritura del fichero");
        }
    }