Andy Roy D.
Andy Roy D.

Reputation: 1041

Deserialize an ArrayList?

I am trying to add serilization and deserialization to my app. I have already added serization which makes it into a textfileThis problem is involving ArrayLists. I was browsing this page: http://www.vogella.com/articles/JavaSerialization/article.html when I saw this code:

FileInputStream fis = null;
    ObjectInputStream in = null;
    try {
      fis = new FileInputStream(filename);
      in = new ObjectInputStream(fis);
      p = (Person) in.readObject();
      out.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    System.out.println(p);
  }

I was confused on this line:

p = (Person) in.readObject();

How do I make this line an ArrayList when creating an ArrayList is not as simple as that:

List<String> List = new ArrayList<String>();

Thanks for the help in advance!

Upvotes: 0

Views: 110

Answers (2)

ug_
ug_

Reputation: 11440

I took the code directly from the website that you provided a link for and modified it for an ArrayList. You mention "How do I make this line an ArrayList when creating an ArrayList is not as simple as that", I say creating an ArrayList is as simple as that.

public static void main(String[] args) {
    String filename = "c:\\time.ser";
    ArrayList<String> p = new ArrayList<String>();
    p.add("String1");
    p.add("String2");

    // Save the object to file
    FileOutputStream fos = null;
    ObjectOutputStream out = null;
    try {
        fos = new FileOutputStream(filename);
        out = new ObjectOutputStream(fos);
        out.writeObject(p);

        out.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    // Read the object from file
    // Save the object to file
    FileInputStream fis = null;
    ObjectInputStream in = null;
    try {
        fis = new FileInputStream(filename);
        in = new ObjectInputStream(fis);
        p = (ArrayList<String>) in.readObject();
        out.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    System.out.println(p);
}

prints out [String1, String2]

Upvotes: 1

Aneeq Anwar
Aneeq Anwar

Reputation: 1332

Have you written a whole ArrayList as an object in the file? Or have you written Persons object that were in an ArrayList in a loop in the file?

Upvotes: 0

Related Questions