Escribir un objeto en un archivo

Necesito escribir un objeto completo en un archivo y recuperarlo cuando quiera. Supongamos que quiero escribir un objeto de una clase "Alumno" que tenga atributos como calificaciones, nombre, rollo, etc. Y cuando quiera acceder y manipular los atributos posteriormente cuando lo necesite. ¿Puedes mostrarme una forma de lograrlo?

preguntado el 08 de febrero de 11 a las 17:02

7 Respuestas

Utilice ObjectOutputStream.

 public class Student implements Serializable {

 }

 FileOutputStream fos = new FileOutputStream("Students.dat");
 ObjectOutputStream oos = new ObjectOutputStream(fos);

 Student someStudent = new Student();

 oos.writeObject(someStudent);

 oos.close();

Al igual que.

Respondido 08 Feb 11, 20:02

Respondido 08 Feb 11, 20:02

La forma más sencilla de hacer lo que busca es Serialización de objetos.

Básicamente, agrega una interfaz a su Student clase, Serializable, que le permitirá pasar objetos de esa clase a un ObjectOutputStream. Puede usar esta secuencia para escribir esos estudiantes en archivos en el disco. Posteriormente, se pueden leer a través de un ObjectInputStream para ser modificado nuevamente.

Respondido 08 Feb 11, 20:02

Primero echa un vistazo al sitio web de la API de serialización de Java.

Respondido 08 Feb 11, 20:02

Si tiene JavaBeans simples, puede usar java.beans.XMLEncoder / XMLDecoder.

Otra forma más es usar JAXB.

Respondido 08 Feb 11, 20:02

La forma más sencilla es simplemente implementar la interfaz serializable de Java: http://download.oracle.com/javase/1.4.2/docs/api/java/io/Serializable.html

public class Student implements Serializable {
}

Luego puede leer / escribir usando los métodos readObject / writeObject.

Respondido 08 Feb 11, 20:02

Estos métodos deberían ayudarlo, su clase de estudiante debe implementar serilizable, Úselo como:

Estudiante s1 = nuevo Estudiante (); objectToFile ("test.ser", s1); Estudiante s2 = fileToObject ("test.ser");

public static void objectToFile(String fileName, Serializable object){
    ObjectOutputStream oos = null;
    try {
        oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName)));
        oos.writeObject(object);
    } catch (Exception e) {
        System.out.println(e.getMessage());
    } finally{
        try {
            oos.flush();
            oos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

public static Object fileToObject(String fileName){
    ObjectInputStream ois = null;
    try {
        ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName)));
        return ois.readObject();
    } catch (Exception e) {
        return null;
    } finally{
        try {
            ois.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}

Respondido 13 Feb 11, 17:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.