Programming Tips - Java: Serialize an object to a file

Date: 2018oct11 Update: 2025oct9 Language: Java Keywords: serial, serialize, persist, database, POD Q. Java: Serialize an object to a file A. implement Serializable in your object and Use ObjectOutputStream. Shown as a full example:
import java.io.Serializable; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.ObjectOutputStream; import java.io.ObjectInputStream; import java.util.LinkedList; class Demo { static class Entry implements Serializable { private String mData; Entry(String in) { mData = in; } @Override public String toString() { return mData; } } public static final String THE_FILE = "/tmp/myobject.data"; static boolean writeObject(final LinkedList<Entry> list) { final String filename = THE_FILE; try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename)); oos.writeObject(list); oos.flush(); oos.close(); } catch(Exception ex) { System.err.println(ex.getMessage()); return false; } return true; } @SuppressWarnings("unchecked") static LinkedList<Entry> readObject() { final String filename = THE_FILE; LinkedList<Entry> list = new LinkedList<Entry>(); try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename)); list = (LinkedList<Entry>) ois.readObject(); ois.close(); } catch(Exception ex) { System.err.println(ex.getMessage()); } return list; } public static final void main(String []args) { { LinkedList<Entry> a = new LinkedList<>(); a.add(new Entry("one")); a.add(new Entry("two")); writeObject(a); System.out.println("wrote=" + a); } { var b = readObject(); System.out.println("read=" + b); } } }
Output:
wrote=[one, two] read=[one, two]
Error checking and file locking omitted for clarity. This works with any kind of object, LinkedList<Entry> is just an example.