how can I write many serializable objects to a single file and then read a few of the objects as and when needed?
For this all you have to do is to implement Serializable or Externalizable interface. Hi, You can use Java's object serialization facility to serialize the object & then store it on the file system in flat files by using Java's I/O APIs. You can use Java Data Objects[JDO].
If you want to serialize multiple objects in Java, there are various easy ways to do it, including serializing the objects one by one, serializing an entire array in one go and serializing a whole Java collection.
An object file is a computer file containing object code, that is, machine code output of an assembler or compiler. The object code is usually relocatable, and not usually directly executable. There are various formats for object files, and the same machine code can be packaged in different object file formats.
You'd have to implement the indexing aspect yourself, but otherwise this could be done. When you serialize an object you essentially get back an OutputStream
, which you can point to wherever you want. Storing multiple objects into a file this way would be straightforward.
The tough part comes when you want to read "a few" objects back. How are you going to know how to seek to the position in the file that contains the specific object you want? If you're always reading objects back in the same order you wrote them, from the start of the file onwards, this will not be a problem. But if you want to have random access to objects in the "middle" of the stream, you're going to have to come up with some way to determine the byte offset of the specific object you're interested in.
(This method would have nothing to do with synchronization or even Java per se; you've got to design a scheme that will fit with your requirements and environment.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With