Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh.
The ObjectOutputStream
kelas dari java.io
paket dapat digunakan untuk menulis benda-benda yang dapat dibaca oleh ObjectInputStream
.
Ini memperluas OutputStream
kelas abstrak.
Bekerja dari ObjectOutputStream
Pada dasarnya, ObjectOutputStream
kode 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 : ObjectOutputStream
Kelas hanya menulis objek yang mengimplementasikan Serializable
antarmuka. Ini karena objek perlu diserialkan saat menulis ke aliran
Buat ObjectOutputStream
Untuk membuat aliran keluaran objek, kita harus mengimpor java.io.ObjectOutputStream
paket 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 ObjectOutputStream
kelas menyediakan implementasi untuk metode yang berbeda hadir di OutputStream
kelas.
Write () Metode
write()
- menulis satu byte data ke aliran keluaranwriteBoolean()
- menulis data dalam bentuk booleanwriteChar()
- menulis data dalam bentuk karakterwriteInt()
- menulis data dalam bentuk integerwriteObject()
- menulis objek ke aliran keluaran
Contoh 1: Java ObjectOutputStream
Mari kita lihat bagaimana kita bisa menggunakan ObjectOutputStream
untuk menyimpan objek dalam file dan ObjectInputStream
membaca 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 ObjectOutputStream
untuk 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
ObjectOutputStream
bernama objOut menggunakanFileOutputStream
fileOut bernamaObjectInputStream
bernama objIn menggunakanFileInputStream
fileIn 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 Serializable
antarmuka. Itu karena ObjectOutputStream
hanya 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).