Studiewijzer module 08
IO


Serialisatie

  • ObjectInputStream, welke in de constructor een (File)InputStream meekrijgt, heeft een methode readObject() waarmee je een Object op kunt vragen.

  • ObjectOutputStream, welke in de constructor een (File)OutputStream meekrijgt, heeft een methode writeObject() waarmee je een Object weg kunt schrijven.

  • Deserialisatie zet de state terug in het object zoals het was, daarbij wordt dus geen constructor of andere initialiserende code aangeroepen.

  • Deserialisatie levert een Object op, die je zelf nog moet casten. Dit komt omdat tijdens deserialisatie je een ander type object terug kan geven dan in de stream staat. Het type dat teruggegeven wordt is dus op compilatie tijd niet bekend en kan niet opgenomen worden als return type of via generics getypeerd worden.

Mark, reset, skip

InputStream heeft onder andere de methoden mark(), reset() en skip().

  • Skip(n) slaat de eerst volgende n bytes over

  • Mark(readlimit) markeert de huidige cursor, het limit is om de mark te invalideren na x aantal bytes (en heeft dus niets te maken met de plaats van de mark).

  • Reset() zet de cursor terug op de plaats van de eerder gemaakte mark. Als er geen geldige mark meer is, wordt er een IOException gegooid.

Niet iedere stream heeft ondersteuning voor marks


« Vorige module Volgende module »