Clases para la gestión de Flujos (texto)

Guardan caracteres alfanuméricos en un formato estándar (ASCII, UNICODE, UTF8, …)

Para trabajar con este tipo de ficheros utilizaremos las clases FileReader para leer caracteres y FileWriter para escribirlos en un fichero.

Al trabajar con lecturas o escrituras en ficheros, se pueden generar errores que hay que tener en cuenta a la hora de trabajar con Java. Son las llamadas excepciones (que veremos más adelante). Para poderlas tratar hay que poner estas operaciones dentro de bloques TRY-CATCH.

  • Clase FileReader: para leer caracteres

FileNotFoundException (no existe el nombre del fichero o no es válido)

  • Clase FileWriter: para escribir caracteres

IOException (el disco está lleno o protegido contra escritura)

Constructor FileReader

Métodos

Estos métodos devuelven el número de caracteres leídos o es su defecto -1 si ha llegado al final de fichero. (EOF)

Constructor FileWriter

Métodos

 

Ejercicio:

Leer un fichero de texto:

import java.io.*;
public class LeerFichTexto {
  public static void main(String[] args) throws IOException {
  File fichero = new File("fichero1.txt");//declarar fichero
  FileReader fic = new FileReader(fichero); //crear el flujo de entrada   
  int i;
  while ((i = fic.read()) != -1) //se va leyendo un carácter
  	System.out.println( (char) i + "==>"+ i);
    fic.close(); //cerrar fichero   
     }
}

ACTIVIDAD 04 : Crea un programa que vaya leyendo de un fichero que se le pasará por la línea de comandos y visualice el contenido.

(el fichero se creará previamente en un editor de texto).

Escribir en un fichero de texto

public class EscribirFichTexto {
  public static void main(String[] args) throws IOException {
   File fichero = new File("FichTexto.txt");//declara fichero     	 
   FileWriter fic = new FileWriter(fichero); //crear el flujo de salida  	 
   String cadena ="Esto es una prueba con FileWriter";
   char[] cad = cadena.toCharArray();//convierte un String en array de caracteres
   for(int i=0; i<cad.length; i++)
   	fic.write(cad[i]);  //se va escribiendo un carácter
   fic.append('*'); //añado al final un *   
   fic.write(cad);//escribir un array de caracteres   
   String c="\n*esto es lo ultimo*";
   fic.write(c);//escribir un String   
   String prov[] ={"Albacete","Avila","Badajoz","Jaén","Madrid","Toledo","Valencia","Zamora"};
   fic.write("\n");
   for(int i=0; i<prov.length; i++) {       	
fic.write(prov[i]);     	
fic.write("\n");   
   }
   fic.close();	//cerrar fichero
   }
}

ACTIVIDAD 05 : Crea un programa que vaya escribiendo en un fichero que se le pasará por la línea de comandos. Irá escribiendo los caracteres hasta que lea el carácter  \

OJO: Si el fichero ya existe, al escribir borrará todo su contenido anterior. Para que esto no ocurra al instanciar un objeto de la clase FileWriter pondremos como segundo parámetro true.

FileWriter fic=new FileWriter(fichero, true);