Ik moet zelf objecten naar byte[] converteren en terug*, en dat lukt me wel, maar wel met de creatie van 2 streams per keer:
Ik heb al aardig geexperimenteerd met resetten van de streams, maar dan raakt de data in de byte[]s corrupt zodra je het terug wil converteren naar een object. Flushen ook al geprobeerd maar dat haalt niets uit in dit geval.
Weet iemand een manier om dit voor elkaar te krijgen zonder elke keer weer 2 streams te creeren?
* bv om ze via UDP / DataGrams te versturen.
Java:
1
2
3
4
| ByteArrayOutputStream bout = new ByteArrayOutputStream(); // evt size opgeven ObjectOutputStream out = new ObjectOutputStream(bout); out.writeObject(o); return bout.toByteArray(); |
Java:
Het punt is alleen dat ik nu het liefst streams ga hergebruiken. Gewoon weer in out schrijven werkt niet want die bytes worden geappend, en terugconverteren levert dan steeds het eerste object op.1
2
3
| ByteArrayInputStream bin = new ByteArrayInputStream(bytes); // evt met offset en length ObjectInputStream in = new ObjectInputStream(bin); return in.readObject(); |
Ik heb al aardig geexperimenteerd met resetten van de streams, maar dan raakt de data in de byte[]s corrupt zodra je het terug wil converteren naar een object. Flushen ook al geprobeerd maar dat haalt niets uit in dit geval.
Weet iemand een manier om dit voor elkaar te krijgen zonder elke keer weer 2 streams te creeren?
* bv om ze via UDP / DataGrams te versturen.
More than meets the eye
There is no I in TEAM... but there is ME
system specs