En este articulo, vamos a ver como podemos crear ficheros desde Java,como podemos sobreescribir su contenido, añadir registros, o leer secuencialmente los datos existentes en un fichero, con Java, utilizando las clases de java.io
Sobreescribir contenido
Para abrir un fichero desde Java, podemos utilizar una de las clases existentes en el paquete java.io; concretamente FileWriter; al que le podemos indicar la ruta completa y el nombre de fichero, y nos proporcionara un OutputStream que utilizaremos para grabar.
Este objeto, nos interesa recubrirlo con un filtro: PrintWrite
Observad que estamos utilizando los objetos que heredan desde Writer, ya que nuestra intención es escribir caracteres, si no fuera así, podríamos haber utilizado FileOutputStream y PrintStream.
Una vez se ha establecido la comunicación, podemos utilizar los métodos vistos del objeto PrintWriter para escribir en el fichero
En el siguiente ejemplo, grabamos 10 registros en un fichero de texto, sobrescribiendo cualquier valor que hubiera anteriormente
Añadir registros
Cuando se desea añadir datos a un fichero, solo debemos añadir un flag a true como segundo parámetro en la creación del FileWriter
Sabiendo esto, os propongo que modifiquéis la clase precedente para que añada 10 registros MÁS a los existentes
El resultado, debería ser algo así:
Podéis comprobar que si el fichero esta creado, los registros se añaden en cola, y si el fichero no existe, este se crea automáticamente,
Leer secuencialmente un archivo
Igual que hacíamos anteriormente con la consola del sistema, la utilización del BufferedReader nos permite aislar nuestras ordenes de lectura, de la actividad real del dispositivo físico.
Esto es, el acceso físico no viene dado directamente por nuestras órdenes de lectura, si no que se realizara cuando la interface considere necesario realizar la lectura, y siempre, como mínimo, registro a registro, haciendo mucho más óptimo el acceso a disco
Como siempre, para trabajan con streamer, lo primero es conseguir uno, y como es para tratar un fichero en disco, utilizamos FileReader
fichero solo es una string en donde podemos dejar la ruta completa al fichero
Para optimizar el tratamiento, activamos un BufferedReader
Y ahora, ya podemos utilizar los métodos de BufferedReader para procesar el fichero.
A continuación os dejo un ejemplo en donde se lee secuencialmente el fichero creado en el tema anterior, y se imprimen las líneas a consola