Well, there is an InputStream already. Now what about an OutputStream? It's not unusual that one wants to create/update data and send it through some output stream to add compression/encryption/send through network etc.
Also I think it would be worth adding overloads of operator >> and << to read/write data to/from streams. Those overloads can be easily implemented using the pure virtual Read/Write operations.
To be more consistent, Packet class on the network package may inherit from InputStream and OutputStream, or separate it into two classes (InputPacket, OutputPacket, or something like that). That would fit better what is said about Inputstream being able to be used to read data from the network.
What do you think?