
04/12/2007, 17:52
|
 | | | 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());
}
}_______________________ |