Problema con IOException

Iniciado por dato000, 31 Marzo 2011, 21:21 PM

0 Miembros y 1 Visitante están viendo este tema.

dato000

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.



Tryptophan

El objeto ex de tipo IOException te da información sobre lo que pasa... ¿Googleaste eso?.

dato000

no pasa nada, ya lo solucione habia que serializar las clases. Ok no es más.