Lectura y escritura de archivos

Aunque el manejo de archivos tiene características especiales, se puede utilizar lo dicho hasta ahora para las entradas y salidas estándar con pequeñas variaciones. Java ofrece las siguientes posibilidades:

Existen las clases FileInputStream y FileOutputStream (extendiendo InputStream y OutputStream) que permiten leer y escribir bytes en archivos. Para archivos de texto son preferibles FileReader (desciende de Reader) y FileWriter (desciende de Writer), que realizan las mismas funciones.

Se puede construir un objeto de cualquiera de estas cuatro clases a partir de un String que contenga el nombre o la dirección en disco del archivo o con un objeto de la clase File que representa dicho archivo. Por ejemplo el código

FileReader fr1 = new FileReader(«archivo.txt»);

es equivalente a:

File f = new File(«archivo.txt»);
FileReader fr2 = new FileReader(f);

Si no encuentran el archivo indicado, los constructores de FileReader y FileInputStream pueden lanzar la excepción java.io.FileNotFoundException.

Los constructores de FileWriter y FileOutputStream pueden lanzar java.io.IOException. Si no encuentran el archivo indicado, lo crean nuevo. Por defecto, estas dos clases comienzan a escribir al comienzo del archivo. Para escribir detrás de lo que ya existe en el archivo (“append”), se utiliza un segundo argumento de tipo boolean con valor true:

FileWriter fw = new FileWriter(«archivo.txt», true);

Las clases que se explican a continuación permiten un manejo más fácil y eficiente que las vistas hasta ahora.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra