Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

writing many java objects to a single file

how can I write many serializable objects to a single file and then read a few of the objects as and when needed?

like image 790
Anupam Avatar asked Aug 12 '10 17:08

Anupam


People also ask

How to write multiple objects to file in Java?

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].

Can we serialize more than one object in Java?

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.

What is object file in Java?

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.


1 Answers

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.)

like image 185
Andrzej Doyle Avatar answered Sep 25 '22 00:09

Andrzej Doyle