Se
utilizan las clases FileReader y FileWriter
Lo
primero es crear un ejemplar de la clase pasando al constructor una cadena con
el nombre del fichero o un File.
Para
la lectura y la escritura se utilizan los métodos read o write, que se encargan de leer o escribir un carácter.
Los
caracteres alfanuméricos se pueden
tratar en muchos esquemas de codificación, por defecto utilizan UTF-8, pero se puede pasar
como argumento a FileReader y FileWriter una Charset determinado (ASCII,
UNICODE, ISO-8859-1, etc)
Cuando
se terminan las operaciones sobre los datos se cierra el fichero con el método close.
FileReader
además proporciona los
siguientes métodos, que devuelven el número de caracteres leídos, o -1, si se ha llegado
al final del fichero:
int read (), lee un carácter.
int read (char[] buf), lee caracteres en un array buf.
int read(char[] buf, int despl, int n), lee como máximo n caracteres en el array buf y empezando en
buf[despl].
FileWriter
además proporciona los
siguientes métodos:
void write (int car), escribe un carácter.
void write (char[] buf), escribe un array de caracteres.
void write (char[] buf, int despl, int n), escribe n
caracteres en el array buf y empezando en buf[despl].
void write (String st), escribe una cadena de caracteres.
append (char car), añade un carácter al fichero.
Lectura/Escritura en ficheros de caracteres utilizando
memoria intermedia (buffered)
Las
clases anteriores traducen directamente cada operación de E/S a una llamada al sistema operativo
subyacente. Esto puede ser muy ineficiente cuando se procesan grandes volúmenes de información; resulta mucho más rápido leer y escribir siempre en una zona de memoria
intermedia, que solo se llena o vacía (mediante llamadas al sistema operativo) cuando es
necesario.
Las
clases con memoria intermedia para el tratamiento de caracteres son: BufferedReader y BufferedWriter.
El
constructor de la clase con memoria intermedia recibe un ejemplar de la clase
sin memoria intermedia.
Además nos permiten procesar líneas de texto completas, mediante los métodos readLine().
Ejemplos:
FileReader
fr = new FileReader(fichent)
BufferedReader
br = new BufferedReader(fr);
FileWriter
fw = new FileWriter(fichsal);
BufferedWriter
bw = new BufferedWriter(fw);
Lectura/Escritura en ficheros de caracteres haciendo
lectura por líneas
Para
leer textos por líneas se emplean las
clases BufferedReader y PrintWriter. El método de funcionamiento puede ser leer una línea completa, procesarla y escribirla en el
archivo de destino.
Hay
que tener en cuenta que cada sistema operativo hace uso de marcadores de fin de
línea diferentes.
BufferedReader flujoDeEntrada =
null;
PrintWriter flujoDeSalida = null;
try
{
flujoDeEntrada
= new BufferedReader(new FileReader(“libro.txt"));
flujoDeSalida
= new PrintWriter(new
FileWriter("copia_libro.txt"));
String linea;
while ((linea = flujoDeEntrada.readLine()) !=
null) {
flujoDeSalida.print(linea);
}
} finally {
if (flujoDeEntrada != null) {
flujoDeEntrada.close();
}
if (flujoDeSalida != null) {
flujoDeSalida.close();
}
No hay comentarios:
Publicar un comentario