Java ObjectOutputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh.

The ObjectOutputStreamkelas dari java.iopaket dapat digunakan untuk menulis benda-benda yang dapat dibaca oleh ObjectInputStream.

Ini memperluas OutputStreamkelas abstrak.

Bekerja dari ObjectOutputStream

Pada dasarnya, ObjectOutputStreamkode objek Java menggunakan nama kelas dan nilai objek. Dan, karenanya menghasilkan aliran yang sesuai. Proses ini dikenal sebagai serialisasi.

Aliran yang dikonversi tersebut dapat disimpan dalam file dan dapat ditransfer antar jaringan.

Catatan : ObjectOutputStreamKelas hanya menulis objek yang mengimplementasikan Serializableantarmuka. Ini karena objek perlu diserialkan saat menulis ke aliran

Buat ObjectOutputStream

Untuk membuat aliran keluaran objek, kita harus mengimpor java.io.ObjectOutputStreampaket terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara kami membuat aliran keluaran.

 // 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 keluaran objek bernama objStream yang dihubungkan dengan aliran keluaran file bernama fileStream.

Metode ObjectOutputStream

The ObjectOutputStreamkelas menyediakan implementasi untuk metode yang berbeda hadir di OutputStreamkelas.

Write () Metode

  • write() - menulis satu byte data ke aliran keluaran
  • writeBoolean() - menulis data dalam bentuk boolean
  • writeChar() - menulis data dalam bentuk karakter
  • writeInt() - menulis data dalam bentuk integer
  • writeObject() - menulis objek ke aliran keluaran

Contoh 1: Java ObjectOutputStream

Mari kita lihat bagaimana kita bisa menggunakan ObjectOutputStreamuntuk menyimpan objek dalam file dan ObjectInputStreammembaca objek tersebut dari file

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

Keluaran

 Data Integer: 5 Data string: Ini adalah programiz 

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

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

Contoh 2: Java ObjectOutputStream

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

Keluaran

 Nama Anjing: Tyson Dog Breed: Labrador 

Dalam contoh di atas, kami telah membuat

  • ObjectOutputStreambernama objOut menggunakan FileOutputStreamfileOut bernama
  • ObjectInputStreambernama objIn menggunakan FileInputStreamfileIn bernama.
  • Objek dog1 dari kelas Dog.

Di sini, kami kemudian menggunakan aliran keluaran objek untuk menulis objek ke file. Dan, aliran input objek untuk membaca objek dari file.

Catatan : Kelas Dog mengimplementasikan Serializableantarmuka. Itu karena ObjectOutputStreamhanya menulis objek yang dapat diserialkan ke aliran keluaran.

Metode Lain ObjectOutputStream

Metode Deskripsi
flush() membersihkan semua data dari aliran keluaran
drain() menempatkan semua data yang di-buffer di aliran keluaran
close() menutup aliran keluaran

Untuk mempelajari lebih lanjut, kunjungi Java ObjectOutputStream (dokumentasi resmi Java).

Artikel yang menarik...