Een object in Java serialiseren: 8 stappen (met afbeeldingen)

Inhoudsopgave:

Een object in Java serialiseren: 8 stappen (met afbeeldingen)
Een object in Java serialiseren: 8 stappen (met afbeeldingen)

Video: Een object in Java serialiseren: 8 stappen (met afbeeldingen)

Video: Een object in Java serialiseren: 8 stappen (met afbeeldingen)
Video: natuurkunde uitleg TANDWIELEN 2024, April
Anonim

Wanneer u een object in Java serialiseert, converteert u de gegevens naar bytestreams die later weer worden omgezet in de kopie van de originele gegevens. Als dit verwarrend klinkt, denk dan aan serialisatie in de volgende termen. U werkt aan een document en slaat het vervolgens op uw harde schijf op. Je bent bij wijze van spreken de data aan het serialiseren, zodat je die kopie later terug kunt halen. Serialisatie maakt de overdracht van gegevens op netwerken veel eenvoudiger en efficiënter.

Het is belangrijk dat u de basisprincipes van Java begrijpt voordat u een object serialiseert. Als je programmeertalen zoals Pascal en oudere versies van C hebt gebruikt, weet je dat een programmeur zonder objectserialisatie een apart I/O-tekstbestand moet maken om gegevens op te slaan en te laden. Objectserialisatie in Java maakt het maken van dit tekstbestand om gegevens op te slaan omzeild, wat tijd en programmeerkosten bespaart. Het volgende artikel bevat de stappen om een object in Java te serialiseren. De voorbeeldcode in dit artikel is gebruikt met dank aan The Java Developers Almanac 1.4.

Stappen

Een object serialiseren in Java Stap 1
Een object serialiseren in Java Stap 1

Stap 1. Open het Java-coderingsobject dat serialisatie vereist of maak er een helemaal opnieuw

Een object serialiseren in Java Stap 2
Een object serialiseren in Java Stap 2

Stap 2. Selecteer het object in Java dat u wilt serialiseren

In dit voorbeeld noemen we dat object 'MijnObject'.

Een object serialiseren in Java Stap 3
Een object serialiseren in Java Stap 3

Stap 3. Schakel objectserialisatie in Java in door de MyObject-klasse de java.io. Serialize-interface te laten implementeren

Voeg gewoon de volgende coderegel toe aan het begin van de code, ter vervanging van de "public class MyObject" line.public class MyObject implementeert java.io. Serializable

Een object serialiseren in Java Stap 4
Een object serialiseren in Java Stap 4

Stap 4. Nu is je object serialiseerbaar, dat betekent dat het kan worden geschreven door een uitvoerstroom, zoals deze:

  • De volgende coderegels illustreren hoe MyObject (of een willekeurig serialiseerbaar object) naar een bestand of schijf wordt geschreven.

    proberen{

    // Serialiseer gegevensobject naar een bestand

    ObjectOutputStream out = nieuwe ObjectOutputStream (nieuwe FileOutputStream ("MyObject.ser"));

    out.writeObject(object);

    uit.sluiten();

    // Serialiseer gegevensobject naar een bytearray

    ByteArrayOutputStream bos = nieuw ByteArrayOutputStream();

    out = nieuwe ObjectOutputStream(bos);

    out.writeObject(object);

    uit.sluiten();

    // Haal de bytes van het geserialiseerde object op

    byte buf = bos.toByteArray();

    } catch (IOException e) {

    }

Een object in Java serialiseren Stap 5
Een object in Java serialiseren Stap 5

Stap 5. Het kan als volgt worden gelezen:

try{ FileInputStream door = nieuwe FileInputStream("name_of_file.sav"); ObjectInputStream-lezer = nieuwe ObjectInputStream(deur); MijnObject x = nieuwe MijnObject(); x = (MijnObject) reader.nextObject();}catch (IOException e){ e.printStackTrace();}

Een object in Java serialiseren Stap 6
Een object in Java serialiseren Stap 6
Een object in Java serialiseren Stap 7
Een object in Java serialiseren Stap 7

Stap 6. Voer de geserialiseerde objectcode uit in het Java-programma om ervoor te zorgen dat het effectief werkt (optioneel)

Voer een. Jar Java-bestand uit Stap 9
Voer een. Jar Java-bestand uit Stap 9

Stap 7. Sla het geserialiseerde object op en sluit het in Java

Tips

  • Serialisatieverbeteringen in de Java SE Development Kit 6 stellen u in staat om de ObjectStreamClass te gebruiken om elke methode op te zoeken voor het afhandelen van niet-serialiseerbare klasseobjecten.
  • Om de lees- en schrijftijden in grote objectstructuren te verbeteren, gebruikt u het sleutelwoord "transient" voor bijvoorbeeld variabelen die geen serialisatie vereisen. Dit zal de prestaties verbeteren doordat u niet langer onnodige gegevens leest en schrijft in het serialisatieproces.

Waarschuwingen

  • Java komt bijna jaarlijks met een nieuwe versie van hun ontwikkelaarskit. Nieuwe versies bevatten upgrades en wijzigingen in hoe u een object in Java kunt serialiseren. Daarom is het belangrijk om de wijzigingen in de versie die u gebruikt in de gaten te houden.
  • Bij het serialiseren van objecten kunt u gegevensstromen niet versleutelen. Daarom moet u, indien nodig, vertrouwen op andere toepassingen of secundaire netwerktransportprocessen om de gegevens te beschermen.
  • Er is momenteel geen optie waarmee u objecten naar een willekeurig toegankelijk bestand kunt schrijven. In plaats daarvan kunt u de Byte Array-invoeruitvoerstromen gebruiken als een tijdelijke aanduiding om de objecten te lezen en te schrijven. Zorg er echter voor dat het hele object zich in de Byte Array-stroom bevindt, anders mislukt het proces.

Aanbevolen: