Ficheros en java

Post on 20-Jun-2015

758 views 6 download

description

Un fichero permite almacenar datos en memoria secundaria para utilizarlos en el futuro

Transcript of Ficheros en java

FICHEROS EN JAVA

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

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.

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.

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

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

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

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

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

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

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

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)

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

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

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

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

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.

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

Clases De Archivo

• File y RandomAccesFile (mayor control sobre los archivos)

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