Buenas, como han estado gente?
tengo un codigo en cual debo utilizar persistencias (cuentos con el serializable), en el cuál debo leer un archivo serializado con los datos de un estudiante y la universidad a la cual va.
Mi duda radica en que cuando esta haciendo la escritura del objeto leido desde el constructor principal pues me lanza un error y no escribe nada.
porque sucede este error IOException en el metodo guardar(Object ob, String archivo)??
Oh pues no es tanto un error, sino que me sale el mensaje de IOException y me manda al mensaje "ARCHIVO NO SE ALMACENARA" y termina de ejercutar.Dejo el codigo, cualquier ayuda es agradecida, pista algún dato pues ya revise todo y anda perfecto, pero que joda con estas excepciones!!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pruebas;
import datos.Universidad;
import datos.Estudiante;
import utilidades.Operaciones;
/**
*
* @author dato000
*/
public class main {
public static void main(String[] args) {
System.out.println("PRUEBA DE SERIALIZACION POR dato000");
//creacion del objeto universidad para crear el estudiante
Universidad u = new Universidad();
u.setCodigo(25);
u.setDireccion("Ciudad Tunal");
u.setNombre("La Libre Bosque Popular");
//Datos del estudiante y creacion del objeto universidad
Estudiante e = new Estudiante();
e.setCodigo(534);
e.setNombre("Dave Mustaine");
e.setNota1(3.3);
e.setUniversidad(u);
//Invocamos la clase operaciones para guardar,
//enviar el objeto estudiante
Operaciones op = new Operaciones();
boolean creado = op.guardar(e, ""+e.getCodigo());
if(creado)
System.out.println("ARCHIVO FUE CREADO EXITOSAMENTE");
Object obj = op.leer("534");
//Convertir el objeto en estudiante
Estudiante nuevoEstudio = (Estudiante)obj;
System.out.println("DATOS LEIDOS DEL ESTUDIANTE");
System.out.println("NOMBRE DEL ESTUDIANTE: "+nuevoEstudio.getNombre());
System.out.println("NOTA DEL ESTUDIANTE: "+nuevoEstudio.getNota1());
System.out.println("NOMBRE UNIVERSIDAD DEL ESTUDIANTE: "+nuevoEstudio.getUniversidad().getNombre());
System.out.println("DIRECCION DEL ESTUDIANTE: "+nuevoEstudio.getUniversidad().getDireccion());
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package utilidades;
import java.io.*;
/**
*
* @author dato000
*/
public class Operaciones {
public boolean guardar(Object ob, String archivo){
{
ObjectOutputStream is = null;
try{
FileOutputStream fis = new FileOutputStream(archivo);
is = new ObjectOutputStream(fis);
is.writeObject(ob);
is.close();
fis.close();
return true;
}catch(FileNotFoundException ex){
System.out.println("ARCHIVO NO ENCONTRADO");
}catch(IOException ex){
System.out.println("ARCHIVO NO SE ALMACENARA");
}
}
return false;
}
public Object leer(String archivo){
try{
FileInputStream fis = new FileInputStream(archivo);
ObjectInputStream is = new ObjectInputStream(fis);
Object objeto = (Object)is.readObject();
is.close();
fis.close();
return objeto;
} catch(ClassNotFoundException ex){
System.out.println("NO SE PUEDE CREAR OBJETO LEIDO");
}catch(FileNotFoundException ex){
System.out.println("NO SE ENCUENTRA EL ARCHIVO");
}catch(IOException ex){
System.out.println("NO SE CREARA EL OBJETO POR ESTAR VACIO");
}
return null;
}
}
En las clases Estudiante y Universidad solo hay encapsulamiento de los datos requeridos para el ejercicio (nombre, direccion, codigo, direccion universidad).
Gracias gente.