Como serializar y deserializar ArrayList en Java

Muchas veces queremos guardar nuestros ArrayList dentro de un dispositivo no volátil. Como podría ser dentro del directorio, o en otra localización del disco duro, para ello usamos la serialización. La serialización consiste en guardar nuestro arrayList en un archivo binario dentro del disco duro. La proceso anterior a obtener datos de un archivo y pasarlo al programa se llama deserizalizar.

Para hacer esto primero necesitamos una clase objeto e implementar serialize:

public class Objeto implements Serializable{
                 String str; Objeto(String str) {
     this.str=str; }
 }

Creamos nuestros objetos y lo añadimos a ArrayList:

    ArrayList<Objeto> objList = new ArrayList();
     Objeto objeto1 = new Objeto("str");
     Objeto objeto2 = new Objeto("str2");
     Objeto objeto3 = new Objeto("str3");
     Objeto objeto4 = new Objeto("str4");
     objList.add(objeto1);
     objList.add(objeto2);
     objList.add(objeto3);
     objList.add(objeto4);

Lo guardado en un fichero.txt de la siguiente forma:

try {
             OutputStream file = new FileOutputStream("fichero.txt");
             OutputStream buffer = new BufferedOutputStream(file);
             ObjectOutput output = new ObjectOutputStream(buffer);
       output.writeObject(objList);
      output.close();
      buffer.close();
     } catch (Exception ex) {
         System.out.println("Error "+ex.getMessage());     }

Lo leemos en un fichero.txt de la siguiente forma:

try {
             InputStream file = new FileInputStream("fichero.txt");
             InputStream buffer = new BufferedInputStream(file);
             ObjectInput input = new ObjectInputStream(buffer);
       objList = (ArrayList) input.readObject();
} catch (Exception ex) {
         System.out.println("Error "+ex.getMessage());
     }

Pues hasta aquí mis apuntes de hoy, espero que hayan aprendido algo y haya sido entretenido. Sin más me despido, un saludo y hasta la próxima, chao

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Tomas Gonzalez
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
A %d blogueros les gusta esto: