Hoe een object in Java te serialiseren
Wanneer u een object in Java serializas, wat je doet is turn data in byte streams die vervolgens worden omgezet terug in een kopie van de originele data. Als dit verwarrend klinkt, denk dan aan serialisatie in de volgende bewoordingen. Stel dat u aan een document werkt en het op uw harde schijf opslaat. Wat je zou doen, om zo te zeggen, zou zijn om de gegevens te serialiseren, zodat je later een kopie kunt krijgen. Serialisatie maakt de overdracht van gegevens op het netwerk veel eenvoudiger en efficiënter. Het is belangrijk dat u de essentie van Java begrijpt voordat u een object serialiseert. Als u hebt gebruikt talen als Pascal en oudere versies van C, weet je dat zonder serialisatie, moet de programmeur een file I / S van afzonderlijke tekst te maken, om de belasting gegevens op te slaan en. Door het serialiseren van objecten in Java hoeft dit tekstbestand niet te worden gemaakt om de gegevens op te slaan en tijd te besparen, evenals programmeerkosten. Het volgende artikel bevat de stappen om een object in Java te serialiseren. De voorbeeldcode die in dit artikel wordt weergegeven, is afkomstig van The Java Developers Almanac 1.4.
stappen
probeer {
// Een gegevensobject serialiseren naar een bestand
ObjectOutputStream out = nieuwe ObjectOutputStream (nieuw
FileOutputStream ("MyObject.ser")) -
out.writeObject (object) -
out.close () -
// Een gegevensobject serialiseren naar een bytearray
ByteArrayOutputStream bos = new ByteArrayOutputStream () -
out = new ObjectOutputStream (bos) -
out.writeObject (object) -
out.close () -
// Verkrijg de bytes van het geserialiseerde object
byte [] buf = bos.toByteArray () -
} catch (IOException e) {
}
- try {FileInputStream deur = new FileInputStream ( "name_of_file.sav") - ObjectInputStream reader = new ObjectInputStream (deur) -MyObject x = new MyObject () - x = (MyObject) reader.nextObject () -} catch (IOException e) { e.printStackTrace () -}
tips
- Als u de lees- en schrijftijden in grote objectstructuren wilt verbeteren, gebruikt u het trefwoord `transient` om variabelen instantiëren die geen serialisatie vereisen. Dit zal de prestaties verbeteren omdat u niet langer onnodige gegevens in het serialisatieproces zult lezen of schrijven.
- Verbeteringen op het gebied serialisatie in Java SE Development Kit 6 kunt u de methode van ObjectStreamClass lookupAny gebruiken om een object niet serializable klassen te manipuleren.
waarschuwingen
- Meestal brengt Java bijna elk jaar een nieuwe versie van zijn Ontwikkelingskit uit. De nieuwe versies bevatten updates en wijzigingen met betrekking tot de manieren waarop u een object in Java kunt serialiseren. Daarom is het belangrijk om de wijzigingen in de versie die u gebruikt te observeren.
- Wanneer u objecten serialiseert, kunt u geen gegevensstromen coderen. Daarom moet u, indien nodig, vertrouwen op andere toepassingen of secundaire netwerktransportprocessen om de gegevens te beschermen.
- Momenteel is er geen optie waarmee je objecten in bestanden met willekeurige toegang kunt schrijven. In plaats daarvan kunt u Byte Array-invoer- en uitvoerstromen gebruiken als een mogelijke plaats om objecten te lezen en te schrijven. U moet er echter voor zorgen dat het hele object zich in de stroom van de Byte Array bevindt, anders mislukt het proces.
- Hoe Java te updaten
- Hoe een Java-venster in Swing te sluiten
- Hoe u uw Java-versie kunt controleren vanaf de Windows-opdrachtregel
- Hoe u uw Java_Home-pad in Ubuntu configureert
- Hoe u uw eerste Java-programma maakt in Ubuntu Linux
- Hoe Java uit te schakelen
- Hoe HTTP POST-aanvragen op Android uit te voeren
- Hoe de som van twee getallen in Java te vinden
- Hoe Java in te schakelen
- Hoe Java te installeren op Windows 8
- Hoe Java te installeren
- Hoe Java op Ubuntu te installeren
- Hoe een methode in Java te noemen
- Hoe de lengte van een tekenreeks in Java te krijgen
- Hoe Java te repareren
- Hoe JSON te gebruiken
- Hoe te controleren of jаvascript werkt met behulp van Java Tester
- Hoe Java-geheugen te vergroten in Windows 7
- Hoe Java Home te configureren
- Hoe een Java-ontwikkelaar op het hoogste niveau te worden
- Hoe de Java-versie te bepalen die is geïnstalleerd