Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/12/2007, 17:52
Avatar de luisec77
luisec77
 
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: Serializacion

Listo Ya logre completar el programa de serializacion y deserializacion de archivos...
Para imprimir los datos ocupo la clase toString(), - me dijeron que de esta clase no me iba a librar en la deserializacion-, como mencione con esta clase imprimo pero para esto todos los datos los voy concatenando a una variable String.

Esto me sirve ya que me muestra los datos que con anteriodidad introduje, pero que si quiero editar mi arreglo. ¿Hay una manera de hacerlo?.

Estas son mis clases:

Libros.java


import java.io.*;
public class Libros{
public static void main(String args[])throws IOException{
File arch=new File("Libros.dat");
if(arch.exists()){
try{
ObjectInputStream input=new ObjectInputStream(new FileInputStream("Libros.dat"));
ClassX obj1=(ClassX)input.readObject();
System.out.println("Autor"+obj1);
input.close();
}catch(Exception Ext){System.out.println("Error Durante La Deserializacion: \n"+Ext);}
}
else{
try{
ClassX lista2=new ClassX();
ObjectOutputStream output=new ObjectOutputStream(new FileOutputStream("Libros.dat"));
output.writeObject(lista2);
output.flush();
output.close();
} catch(Exception Ext){System.out.println("Error Durante La Serializacion: \n"+Ext);};
}
}

}
_______________________

ClassX.java


import java.io.*;
public class ClassX implements Serializable{
Data lista[]=new Data[1];
public ClassX()throws IOException{
for(int i=0;i<lista.length;i++){
System.out.println("Libro "+(i+1));
lista[i]=new Data();
lista[i].llenado();
}
}
public String toString(){
String texto="";
for(int i=0; i<lista.length; i++){
texto+="\n"+lista[i].autor;
}
return texto;
}
}
_______________________

Data.java



import java.io.*;
public class Data implements Serializable{
String autor,tit,subtit,edit,luged;
int ed,pags,nControl;
public void llenado()throws IOException{
BufferedReader lec=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Autor: ");
autor=lec.readLine();
System.out.println("Titulo del libro: ");
tit=lec.readLine();
System.out.println("Subtitulo del Libro: ");
subtit=lec.readLine();
System.out.println("Editorial: ");
edit=lec.readLine();
System.out.println("Edicion: ");
ed=Integer.parseInt(lec.readLine());
System.out.println("Lugar de Edicion: ");
luged=lec.readLine();
System.out.println("Num. Paginas: ");
pags=Integer.parseInt(lec.readLine());
System.out.println("Numero de Control: ");
nControl=Integer.parseInt(lec.readLine());
}
}_______________________