I'm using google protocol buffer to serialize equity market data (ie. timestamp, bid,ask fields). I can store one message into a file and deserialize it without issue.
How can I store multiple messages into a single file? Not sure how I can separate the messages. I need to be able to append new messages to the file on the fly.
I would recommend using the writeDelimitedTo(OutputStream)
and parseDelimitedFrom(InputStream)
methods on Message
objects. writeDelimitedTo
writes the length of the message before the message itself; parseDelimitedFrom
then uses that length to read only one message and no farther. This allows multiple messages to be written to a single OutputStream
to then be parsed separately. For more information, see https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/MessageLite#writeDelimitedTo(java.io.OutputStream)