Sie sind auf Seite 1von 4

TECNOLGICO DE ESTUDIOS SUPERIORES DEL ORIENTE DEL ESTADO DE MXICO.

Organismo Pblico descentralizado del Estado de Mxico

CARPETA DE EVIDENCIAS

INGENIERIA EN SISTEMAS COMPUTACIONALES

MATERIA:

Fundamentos de Programacin

ALUMNO:

Gutirrez Lugo Rebeca

GRUPO:

2S11

PROFESOR:

Omar Sosa Aguilar

ARCHIVO BINARIO Los archivos binarios nos permiten guardar un objeto directamente en un archivo sin tener que representarlo con texto. Pero ya vimos una manera de guardar nuestra informacin en archivos, entonces para qu buscar otra? Existen varias razones para utilizar archivos binarios, una de las principales es que nos permite utilizar ms fcilmente el paradigma orientado a objetos. Los archivos de texto ocupan ms espacio para guardar la misma informacin. En especial cuando estn relacionados con otras clases.

Guardar y escribir archivos binarios es un proceso muy simple, por lo que se prefiere a los archivos de texto. Lo primero que tenemos que hacer es crear clases que sepan cmo guardarse y leerse de un flujo de bits o bitstream o stream. Despus debemos crear un stream, ya sea para escribir a un archivo o para leer de l. Ahora debemos escribir o leer el objeto al stream. Por ltimo debemos cerrar el stream. Para continuar debemos hacer lo siguiente. Qu hacemos para que los objetos sepan cmo leerse y escribirse de un archivo binario? Para conseguir esto en Java existe una interface que les permite serializarse, es decir, convertirse en bits o deserializarse, es decir, convertirse en datos. La interfaz se llama Serializable y todas las clases que queremos guardar en archivos binarios deben implementarla. Con slo implementar Serializable nuestras clases crearn objetos que saben cmo guardarse y leerse de archivos binarios, sin embargo cmo sabe Java cuando tus clases cambian y se vuelven inutilizables? Para eso utilizamos el atributo serialVersionUID. Este atributo es como la versin de la clase. Siempre que queremos agregar atributos o modificar la clase significativamente debemos cambiar la versin.

Una vez que tenemos clases serializables debemos crear un flujo de bits, por suerte Java cuenta con dos clases que nos permiten hacerlo. La clase que nos sirve para escribir archivos binarios es ObjectOutputStream, que contiene el mtodo writeObject() con el que podemos escribir cualquier objeto.

Ejemplo:
import java.io.Serializable; /** * @web http://www.jc-mouse.net * @author Mouse */ public class MiClase implements Serializable { //Esta variable es para identificar el archivo cuando lo vayamos a reconstruir del *.DAT private static final long serialVersionUID = 666L; //Para guardar el nombre de objeto de la clase private String Nombre_Objeto=""; /* Constructor de la clase */ public MiClase(String Nombre){ this.Nombre_Objeto = Nombre; } public String getNombreObjeto() { return this.Nombre_Objeto; } //algunos metodos public int Suma(int a , int b) { return a + b; } public int Resta(int a , int b) { return a - b; } }

Una vez que tenemos la clase serializable, debemos crear una clase para guardar y leer este archivo binario, la siguiente clase la llame BITS (puede ser cualquier otro nombre), esta clase cuenta con dos mtodos (escribir/leer) los cuales no creo que deba explicar para que sirven

import import import import import /**

java.io.FileInputStream; java.io.FileOutputStream; java.io.IOException; java.io.ObjectInputStream; java.io.ObjectOutputStream;

* @web http://www.jc-mouse.net * @author Mouse */ public class bits { private String ruta_archivo = "e:/temporal/archivo.dat"; public void escribir() { try { //Objeto a guardar en archivo *.DAT MiClase clase = new MiClase("Mi Objeto en DAT"); //Se crea un Stream para guardar archivo ObjectOutputStream file = new ObjectOutputStream(new FileOutputStream( this.ruta_archivo )); //Se escribe el objeto en archivo file.writeObject(clase); //se cierra archivo file.close(); } catch (IOException ex) { System.out.println(ex); } } public void leer() { try { //Stream para leer archivo ObjectInputStream file = new ObjectInputStream(new FileInputStream( this.ruta_archivo )); //Se lee el objeto de archivo y este debe convertirse al tipo de clase que corresponde MiClase clase = (MiClase) file.readObject(); //se cierra archivo file.close(); //Se utilizan metodos de la clase asi como variables guardados en el objeto System.out.println("El objeto se llama:" + clase.getNombreObjeto() ); String res = String.valueOf(clase.Suma(234, 12)) ; System.out.println("La suma de 3 + 12 es igual a : " + res); } catch (ClassNotFoundException ex) { System.out.println(ex); } catch (IOException ex) { System.out.println(ex); } } }

Das könnte Ihnen auch gefallen