I denna handledning lär vi oss om Java ObjectOutputStream och dess metoder med hjälp av exempel.
Paketets ObjectOutputStreamklass java.iokan användas för att skriva objekt som kan läsas av ObjectInputStream.
Det utvidgar den OutputStreamabstrakta klassen.

Arbeta med ObjectOutputStream
I grund och botten ObjectOutputStreamkodar Java-objekt med klassnamn och objektvärden. Och genererar därmed motsvarande strömmar. Denna process kallas för serialisering.
De konverterade strömmarna kan lagras i filer och kan överföras till nätverk.
Obs : Den ObjectOutputStreamklass skriver endast de objekt som implementerar Serializablegränssnittet. Detta beror på att objekt måste serieseras medan de skrivs till strömmen
Skapa en ObjectOutputStream
För att skapa en objektutmatningsström måste vi först importera java.io.ObjectOutputStreampaketet. När vi väl har importerat paketet, här är hur vi kan skapa en utdataström.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
I exemplet ovan har vi skapat en objektutmatningsström med namnet objStream som är länkad till filutmatningsströmmen med namnet fileStream.
Metoder för ObjectOutputStream
Den ObjectOutputStreamklass erbjuder implementeringar för olika metoder att presentera i OutputStreamklassen.
skriv () Metod
write()- skriver en byte av data till utdataströmmenwriteBoolean()- skriver data i boolesk formwriteChar()- skriver data i karaktärsformwriteInt()- skriver data i heltalwriteObject()- skriver objekt till utdataströmmen
Exempel 1: Java ObjectOutputStream
Låt oss se hur vi kan använda för ObjectOutputStreamatt lagra objekt i en fil och ObjectInputStreamläsa dessa objekt från filerna
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(); ) ) )
Produktion
Heltalsdata: 5 Strängdata: Detta är programiz
I exemplet ovan har vi använt readInt()metoden och readObject()metoden för att läsa ett heltal och objektdata från filerna.
Här har vi använt för ObjectOutputStreamatt skriva data till filen. Vi läser sedan data från filen med hjälp av ObjectInputStream.
Exempel 2: Java ObjectOutputStream
Låt oss ta ett annat exempel,
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(); ) ) )
Produktion
Hundnamn: Tyson Hundras: Labrador
I exemplet ovan har vi skapat
ObjectOutputStreamheter objOut medFileOutputStreamnamnet fileOutObjectInputStreamnamngiven objIn medFileInputStreamnamnet fileIn.- Ett objekt hund1 i hundklassen.
Här har vi sedan använt objektets utgångsström för att skriva objektet till filen. Och objektets inmatningsström för att läsa objektet från filen.
Obs! Hundklassen implementerar Serializablegränssnittet. Det beror på att de ObjectOutputStreamenda skriver objekten som kan serieseras till utdataströmmen.
Andra metoder för ObjectOutputStream
| Metoder | Beskrivningar |
|---|---|
flush() | rensar all data från utdataströmmen |
drain() | placerar all buffrad data i utdataströmmen |
close() | stänger utgångsströmmen |
För att lära dig mer, besök Java ObjectOutputStream (officiell Java-dokumentation).








