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);