Java ObjectOutputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai Java ObjectOutputStream dan kaedahnya dengan bantuan contoh.

The ObjectOutputStreamgolongan orang java.iopakej boleh digunakan untuk menulis objek yang boleh dibaca oleh ObjectInputStream.

Ia meluaskan OutputStreamkelas abstrak.

Mengendalikan ObjectOutputStream

Pada dasarnya, ObjectOutputStreammengekod objek Java menggunakan nama kelas dan nilai objek. Oleh itu, menghasilkan aliran yang sesuai. Proses ini dikenali sebagai serialisasi.

Aliran yang ditukar tersebut dapat disimpan dalam fail dan dapat dipindahkan di antara rangkaian.

Catatan : ObjectOutputStreamKelas hanya menulis objek yang melaksanakan Serializableantara muka. Ini kerana objek perlu dibuat bersiri semasa menulis ke aliran

Buat ObjectOutputStream

Untuk membuat aliran output objek, kita mesti mengimport java.io.ObjectOutputStreampakej terlebih dahulu. Sebaik sahaja kami mengimport pakej, berikut adalah bagaimana kita dapat membuat aliran output.

 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 

Dalam contoh di atas, kami telah membuat aliran output objek bernama objStream yang dihubungkan dengan aliran output file bernama fileStream.

Kaedah ObjectOutputStream

The ObjectOutputStreamkelas menyediakan pelaksanaan untuk kaedah yang berbeza hadir dalam OutputStreamkelas.

tulis () Kaedah

  • write() - menulis bait data ke aliran output
  • writeBoolean() - menulis data dalam bentuk boolean
  • writeChar() - menulis data dalam bentuk watak
  • writeInt() - menulis data dalam bentuk integer
  • writeObject() - menulis objek ke aliran output

Contoh 1: Java ObjectOutputStream

Mari kita lihat bagaimana kita dapat menggunakan ObjectOutputStreamuntuk menyimpan objek dalam fail dan ObjectInputStreammembaca objek dari fail

 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(); ) ) ) 

Pengeluaran

 Data integer: 5 Data rentetan: Ini adalah programiz 

Dalam contoh di atas, kami telah menggunakan readInt()kaedah dan readObject()kaedah untuk membaca data integer dan data objek dari fail.

Di sini, kami telah menggunakan ObjectOutputStreamuntuk menulis data ke fail. Kami kemudian membaca data dari fail menggunakan ObjectInputStream.

Contoh 2: Java ObjectOutputStream

Mari ambil contoh lain,

 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(); ) ) ) 

Pengeluaran

 Nama Anjing: Tyson Dog Breed: Labrador 

Dalam contoh di atas, kami telah membuat

  • ObjectOutputStreambernama objOut menggunakan fileOut yang FileOutputStreamdinamakan
  • ObjectInputStreamdinamakan objIn menggunakan fileIn yang FileInputStreamdinamakan.
  • Anjing objek1 dari kelas Anjing.

Di sini, kita kemudian menggunakan aliran output objek untuk menulis objek ke fail. Dan, aliran input objek untuk membaca objek dari fail.

Nota : Kelas Dog menggunakan Serializableantara muka. Ini kerana satu- ObjectOutputStreamsatunya objek yang boleh ditulis secara bersiri ke aliran output.

Kaedah Lain ObjectOutputStream

Kaedah Penerangan
flush() membersihkan semua data dari aliran output
drain() meletakkan semua data yang disangga dalam aliran output
close() menutup aliran output

Untuk mengetahui lebih lanjut, kunjungi Java ObjectOutputStream (dokumentasi Java rasmi).

Artikel menarik...