Está en la página 1de 3

CLASES Y MÉTODOS Archivo de texto Archivo binario

PARA EL MANEJO DE
LAS OPERACIONES Creación y escritura. Creación y escritura.
BÁSICAS Para escribir en un fichero de texto se utilizan Para poder escribir en archivos binarios
dos clases: con el lenguaje java haremos uso de las
FileWriter y PrintWriter. siguientes clases de la API de java.

La clase FileWriter permite tener acceso al La clase File para hacer crear el archivo.
fichero en modo escritura.
Para crear objetos FileWriter podemos utilizar La clase FileOutputStream para escribir
los constructores: en el archivo, junto con la clase
FileWriter(String path) ObjectOutputStream.
FileWriter(File objetoFile);
El método WriteObject() de la clase
El fichero se crea y si ya existe su contenido se ObjectOutputStream, pasándole como
pierde. Si lo que necesitamos es abrir un fichero parámetro el objeto que queremos
de texto existente sin perder su contenido y agregar a nuestro archivo.
añadir más contenido al final utilizaremos los
constructores: Escribiendo a un archivo binario
FileWriter(String path, boolean append) import java.io.ObjectOutputStream;
FileWriter(File objetoFile, boolean append) import java.io.FileOutputStream;
import java.io.IOException;
Si el parámetro append es true significa que los
datos se van a añadir a los existentes. Si es false public class SalidaBinaria {
los datos existentes se pierden. public static void main(String[] args) {
try{
La clase FileWriter proporciona el método: ObjectOutputStream outputStream =
write()para escribir cadenas de caracteres new ObjectOutputStream(new
aunque lo normal es utilizar esta clase junto con FileOutputStream("numbers.dat"));
la clase PrintWriter para facilitar la escritura. int i;
for (i = 0; i < 5; i++){
La clase PrintWriter permite escribir caracteres outputStream.writeInt(i); //Escribo un
en el fichero de la misma forma que en la entero al archivo
pantalla. }
Un objeto PrintWriter se crea a partir de un System.out.println("Números escritos
objeto FileWriter. al archivo numbers.dat.");
Ejemplo: outputStream.close();
FileWriter fw = new }
FileWriter("c:/ficheros/datos.txt"); catch (IOException e){
PrintWriter salida = new PrintWriter(fw); System.out.println("Problema al crear o
grabar en el archivo");
A partir de Java 5 se puede crear un objeto
PrintWriter directamente a partir de un objeto }
File o de la ruta: }
PrintWriter salida = new }
PrintWriter("c:/ficheros/datos.txt");
En este caso, si el fichero no existe se crea. Si no
se puede crear un archivo con ese nombre o si
ocurre algún error se lanza una excepción Lectura
FileNotFoundException. Para poder leer este tipo de archivos se
Una vez creado el objeto podemos utilizar hace uso de las siguientes clases:
print(), println() y printf() para escribir en el
fichero como si fuese en pantalla. La clase File para hacer crear el archivo.

El método flush() provoca que se escriban en el La clase FileInputStream para leer el


fichero los datos que puedan haber en el buffer archivo, junto con la clase
de salida. ObjectInputStream.
El método close() cierra la conexión con el
fichero y libera los recursos que está usando la El método ReadObject() de la clase
conexión. ObjectOutputStream.

Lectura. Leyendo datos desde un archivo


Para leer en un fichero de texto utilizaremos binario
dos clases: import java.io.ObjectInputStream;
FileReader y BufferedReader. import java.io.FileInputStream;
import java.io.IOException;
La clase FileReader permite tener acceso al import java.io.FileNotFoundException;
fichero en modo lectura. public class EntradaBinaria {
Para crear objetos FileReader podemos utilizar public static void main(String[] args){
los constructores: try{
FileReader(String ruta) ObjectInputStream inputStream = new
FileReader(File objetoFile); ObjectInputStream(new
FileInputStream("numbers.dat"));
Ambos lanzan una excepción System.out.println("Leyendo el archivo
FileNotFoundException si el fichero no existe. numbers.dat.");
int n1 = inputStream.readInt();
La clase FileReader proporciona el método int n2 = inputStream.readInt();
read() para leer caracteres del fichero aunque System.out.println("Números leídos
lo normal es realizar la lectura mediante la clase desde el archivo: ");
BufferedReader. System.out.println(n1);
System.out.println(n2);
Para leer utilizando la clase BufferedReader se inputStream.close();
debe crear un objeto BufferedReader a partir de }
un objeto FileReader: catch(FileNotFoundException e){
Ejemplo: System.out.println("No se encuentra el
FileReader fr = new archivo numbers.dat.");
FileReader("c:/ficheros/datos.txt"); }
BufferedReader entrada = new BufferedReader catch(IOException e){
(fr); System.out.println("Problemas al leer
desde el archivo numbers.dat.");
Una vez creado el objeto BufferedReader }
podemos utilizar: System.out.println("Fin del programa");
El método readLine() para leer líneas de texto }
del fichero (String). Este método devuelve null }
cuando no hay más líneas para leer.
El método read() para leer carácter a carácter.
Devuelve un entero que representa el código
Unicode del carácter leído. Devuelve -1 si no
hay más caracteres.

Ambos métodos lanzan una excepción


IOException si ocurre un error de lectura.
El fichero se debe cerrar cuando ya no se use,
mediante el método close(). Este método lanza
una excepción IOException.

Lectura de ficheros de texto con scanner


A partir de Java 5 se puede leer un fichero de
texto utilizando la clase Scanner igual que si
leyéramos por teclado.

Para ello se le pasa al constructor de Scanner el


objeto File asociado al fichero.
Esta operación lanza una excepción
FileNotFoundException.

Se utiliza el método hasNext() de Scanner para


saber si quedan más datos que leer en el
fichero. Este método devuelve false si se ha
llegado al final del fichero y true en caso
contrario.
Se utiliza el método hasNextInt() de Scanner
para saber si quedan más enteros que leer en el
fichero. El método hasNextInt() devuelve true
cuando lo que se va a extraer del fichero es un
entero y devuelve false en caso contrario.

Para borrar un archivo debemos invocar el


método delete() de la clase File. Puedes usar
delete(Path), donde defines la ruta del archivo o
directorio a eliminar.

 Ficheros de texto en Java. (s. f.). blogspot.com. Recuperado 25 de junio de 2021, de


http://puntocomnoesunlenguaje.blogspot.com/2013/05/ficheros-de-texto-en-java.html
 Cuervo, V. (2015, 2 junio). Crear un fichero en Java. Línea de Código. Recuperado 25 de
junio de 2021, de http://lineadecodigo.com/java/crear-un-fichero-en-java/
 Archivos binarios. Ficheros en Java (II). (2020, 27 noviembre). 2021, de
clasesdeinformaticaweb.com. Recuperado 26 de junio de
https://www.clasesdeinformaticaweb.com/java-desde-cero/archivos-binarios-ficheros-en-
java-ii/#Como_escribir_en_archivos_binarios_con_java

También podría gustarte