BlockingQueueis just an interface, not a specific type. You are serializing / deserializing instances that have specific types. It depends on whether the dynamic type of the instace object exists Serializable.
ArrayBlockingQueueimplements Serializable, which means you can just serialize it and deserialize it with ObjectInputStream/ ObjectOutputStream:
Saving ArrayBlockingQueue:
ArrayBlockingQueue queue = new ArrayBlockingQueue(10);
try (ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("queue.data"))) {
out.writeObject(queue);
}
Reading saved ArrayBlockingQueue:
ArrayBlockingQueue queue = null;
try (ObjectInputStream in = new ObjectInputStream (
new FileInputStream("queue.data"))) {
queue = in.readObject()
}
source
share