Ficheros en java
description
Transcript of Ficheros en java
![Page 1: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/1.jpg)
FICHEROS EN JAVA
![Page 2: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/2.jpg)
INTRODUCCIÓN
• Un fichero permite almacenar datos en memoria secundaria para utilizarlos en el futuro
• Un fichero puede ser de entrada (input) o salida (output) dependiendo de si se utiliza para leer o escribir datos
• En Java existen dos tipos de ficheros: ficheros binarios y ficheros de texto
• La clase PrintWriter se utiliza para escribir en ficheros de texto. La clase File se utiliza para leer ficheros de texto
![Page 3: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/3.jpg)
FLUJOS DE ARCHIVOS
• Otra forma de manipulación de manipulación de archivos es tratándolos como flujos continuos de bytes.Cada archivo entonces seria una cinta con la secuencia de información para un archivo dado.
• A diferencia del acceso aleatorio, en estos se presenta un acceso secuencial.
![Page 4: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/4.jpg)
FLUJOS DE OBJETOS
• Es posible escribir y leer objetos de un flujo de cualquier clase. Las clases ObjectInputStream y ObjectOutputStream permiten hacer este tipo de procesos.
![Page 5: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/5.jpg)
Clases Para Flujos De Entradas
Se utilizan para leer datos de una fuente de entrada (archivo, cadena o memoria)
• Flujo de bytes: InputStream, BufferedInputStrem, DataInputStream, FileInputStream
• FLUJO DE CARACTERES: Reader, BuffeeReader, FileReader
![Page 6: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/6.jpg)
Clases Para Flujo De Salida
Son homólogas a las clases de flujo de entrada y se utilizan para enviar flujos de datos a dispositivos de salida
• Flujo de bytes: OutputStream, PrintStream, BufferedReaderOutputStream, DataOutputStream y FileOutputStream.
• FLUJO DE CARACTERES: Writer, PrintWriter, FileWriter
![Page 7: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/7.jpg)
CARACTERÍSTICA PRINCIPAL DE LOS ARCHIVOS
• Es el Nombre y su extensiónEl nombre es la identificación del archivo y su extensión indica el tipo de archivo al que corresponde, la extensión generalmente es de tres caracteres, por ejemplo:
• Nombre.doc es que un archivo tipo documento (de Microsoft Word)
• Nombre.xls es un archivo de hoja de cálculo (Microsoft Excel)
• Nombre.txt es un archivo de texto
![Page 8: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/8.jpg)
La Clase PrintWriter
• La clase PrintWriter de la librería java.io
• Para usar la clase PrintWriter es necesario incluir la librería Input-Output de Java
import java.io.*;
• La clase PrintWriter permite escribir en un fichero con los métodos print y println
print escribe en el fichero sin saltar de línea
println escribe en el fichero y añade un salto de línea
![Page 9: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/9.jpg)
La Clase PrintWriter
• Para escribir en un fichero de texto, es necesario crear un objeto de tipo PrintWriter
PrintWriter fichero = new PrintWriter("Calificaciones.txt");
• Si el nombre del fichero existe, al crear el objeto el contenido del fichero se borrará
• Antes de escribir datos en un fichero de texto es necesario abrirlo, a continuación escribir en él y finalmente, cerrarlo
![Page 10: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/10.jpg)
La Clase PrintWriter
Escritura en un fichero de texto
Para escribir en un fichero de texto:
1. Abrir el fichero con un objeto de la clase PrintWriter
2. Escribir los datos en el fichero utilizando los métodos print y println
3. Cerrar el fichero
![Page 11: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/11.jpg)
La Clase PrintWriter
Escritura en un fichero de texto
PrintWriter fichero = new PrintWriter(“Nombres.txt");
fichero.println("Juan");
fichero.println("Jesús");
fichero.println("Miguel");
fichero.close();
![Page 12: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/12.jpg)
La Clase File
La clase File y la clase Scanner
• Para leer de un fichero de texto se utiliza la clase File y la clase Scanner
• Para leer los datos almacenados en el fichero es necesario utilizar un bucle. Normalmente se utiliza el while hasta que se llega al final del fichero (eof)
• En Java, para detectar el final de un fichero se usa el método hasNext() de la clase Scanner. Este método devuelve false cuando se llega al final del fichero (eof)
![Page 13: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/13.jpg)
La Clase File
Lectura de un fichero de texto
Para leer la información almacenada en un fichero de texto:
1. Abrir el fichero con un objeto de la clase File y vincularlo con un objeto de la clase Scanner
2. Leer el fichero
3. Cerrar el fichero
![Page 14: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/14.jpg)
La Clase File
Lectura de un fichero de texto
File fichero = new File(“Nombres.txt");
Scanner datosFichero = new Scanner(fichero);
while (datosFichero.hasNext())
System.out.println(datosFichero.nextLine());
datosFichero.close();
![Page 15: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/15.jpg)
La Clase File
¿Cómo saber si el fichero existe?
• Cuando Java intenta abrir un fichero que no existe se produce un error de ejecución (Java Exception)
• Para evitar que el programa se interrumpa de forma no controlada al intentar abrir un fichero que no existe, es necesario realizar una comprobación previa
• El método exists() verifica si existe o no el fichero. Devuelve false si el fichero no existe
![Page 16: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/16.jpg)
La Clase File
Lectura de un fichero de texto
File fichero = new File(“Nombres.txt");
if (fichero.exists()) {
Scanner datosFichero = new Scanner(fichero);
while (datosFichero.hasNext())
System.out.println(datosFichero.nextLine());
datosFichero.close();
}
else
System.out.println("Error fichero no existe !!!");
![Page 17: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/17.jpg)
Las Clases FileInputStream Y FileOutputStream
• Gran parte de la entrada y salida de los programas se realiza basándose en archivos y para ello java.io aporta dos clases. Una para ficheros de entrada, FileInputStream, y otra para ficheros de salida, FileOutputStream. La diferencia entre ficheros de entrada y de salida es fundamental, pues situaciones como intentar leer de un fichero de salida o viceversa pueden generar en errores.
![Page 18: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/18.jpg)
Las Clases ObjectInputStream Y ObjectOutputStream
• Son filtros de secuencia que permiten leer y escribir objetos de una corriente de datos orientada a bytes. Solo tiene sentido si los datos almacenados son objetos.
• El método readObject devuelve un object de los datos de la entrada.
• Para controlar las excepciones mediante try catch, opcionalmente podemos controlar mediante throws Exception en la función que usaremos
![Page 19: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/19.jpg)
Clases De Archivo
• File y RandomAccesFile (mayor control sobre los archivos)
![Page 20: Ficheros en java](https://reader036.fdocuments.es/reader036/viewer/2022081504/5584c6c6d8b42af1138b48a2/html5/thumbnails/20.jpg)
La Clase RandomAccesFile
• Los archivos de acceso aleatorio se caracterizan por que es posible mover el apuntador de archivo a cualquier posición dentro del mismo y efectuar operaciones de escritura y lectura a la vez. La forma general de construcción es:
RandomAccesFile arch=new RandomAccesFile(String nombre, String modo);
RandomAccesFile arch=new RandomAccesFile(File obj, String modo);