Tässä opetusohjelmassa opitaan Java ObjectOutputStreamista ja sen menetelmistä esimerkkien avulla.
ObjectOutputStreamLuokan java.iopaketti voidaan käyttää kirjoittamaan esineitä, jotka voidaan lukea ObjectInputStream.
Se laajentaa OutputStreamabstraktia luokkaa.

ObjectOutputStreamin toiminta
Pohjimmiltaan ObjectOutputStreamkoodaa Java-objektit luokan nimellä ja objektiarvoilla. Ja siten luo vastaavat virrat. Tätä prosessia kutsutaan sarjallisuudeksi.
Nämä muunnetut virrat voidaan tallentaa tiedostoihin ja siirtää verkkoihin.
Huomaa : ObjectOutputStreamLuokka kirjoittaa vain ne objektit, jotka toteuttavat Serializablekäyttöliittymän. Tämä johtuu siitä, että objektit on sarjoitettava, kun ne kirjoitetaan streamiin
Luo ObjectOutputStream
Objektin lähtövirran luomiseksi meidän on java.io.ObjectOutputStreamensin tuotava paketti. Kun tuot paketin, voimme luoda tulosvirran seuraavasti.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
Yllä olevassa esimerkissä olemme luoneet objektin ulostulovirran nimeltä objStream, joka on linkitetty tiedoston ulostulovirtaan nimeltä fileStream.
ObjectOutputStreamin menetelmät
ObjectOutputStreamLuokka antaa toteutuksia eri menetelmiä esittää, että OutputStreamluokan.
write () -menetelmä
write()- kirjoittaa datatavun ulostulovirtaanwriteBoolean()- kirjoittaa tiedot loogisessa muodossawriteChar()- kirjoittaa tiedot merkkimuodossawriteInt()- kirjoittaa tiedot kokonaislukunawriteObject()- kirjoittaa objektin ulostulovirtaan
Esimerkki 1: Java ObjectOutputStream
Katsotaanpa, miten voimme ObjectOutputStreamtallentaa objekteja tiedostoon ja ObjectInputStreamlukea nämä objektit tiedostoista
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main ( public static void main(String() args) ( int data1 = 5; String data2 = "This is programiz"; try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Tuotos
Kokonaislukutiedot: 5 Merkkijonotiedot: Tämä on ohjelmoitu
Yllä olevassa esimerkissä olemme käyttäneet readInt()menetelmää ja readObject()menetelmää kokonaisluku- ja objektidatan lukemiseen tiedostoista.
Tässä olemme ObjectOutputStreamkirjoittaneet tietoja tiedostoon. Luemme sitten tiedot tiedostosta ObjectInputStream.
Esimerkki 2: Java ObjectOutputStream
Otetaan toinen esimerkki,
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable ( String name; String breed; public Dog(String name, String breed) ( this.name = name; this.breed = breed; ) ) class Main ( public static void main(String() args) ( // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try ( FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Tuotos
Koiran nimi: Tyson-koirarotu: Labrador
Yllä olevassa esimerkissä olemme luoneet
ObjectOutputStreamnimetty objOut käyttämälläFileOutputStreamnimettyä fileOutObjectInputStreamnimetty objIn käyttämälläFileInputStreamnimettyä tiedostoaIn.- Koira-luokan objektikoira1.
Tässä olemme sitten kirjoittaneet objektin tiedostoon objektin ulostulovirralla. Ja objektin syötevirta objektin lukemiseksi tiedostosta.
Huomaa : Koiraluokka toteuttaa Serializablekäyttöliittymän. Tämä johtuu siitä, että ObjectOutputStreamainoat kirjoitusobjektit, jotka voidaan sarjoittaa lähtövirtaan.
Muut ObjectOutputStream-menetelmät
| Menetelmät | Kuvaukset |
|---|---|
flush() | tyhjentää kaikki tiedot lähtövirrasta |
drain() | laittaa kaikki puskuroidut tiedot lähtövirtaan |
close() | sulkee lähtövirran |
Lisätietoja on Java ObjectOutputStream -sivustossa (virallinen Java-dokumentaatio).








