Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh.
The ObjectInputStream
kelas dari java.io
paket dapat digunakan untuk membaca benda-benda yang sebelumnya ditulis oleh ObjectOutputStream
.
Ini memperluas InputStream
kelas abstrak.
Sebelum Anda mempelajari tentang ObjectInputStream
kelas tersebut, pastikan Anda mengetahui tentang Kelas ObjectOutputStream.
Bekerja dari ObjectInputStream
Ini ObjectInputStream
terutama digunakan untuk membaca data yang ditulis oleh ObjectOutputStream
.
Pada dasarnya, ObjectOutputStream
mengubah objek Java menjadi aliran yang sesuai. Ini dikenal sebagai serialisasi. Aliran yang dikonversi tersebut dapat disimpan dalam file atau ditransfer melalui jaringan.
Sekarang, jika kita perlu membaca objek itu, kita akan menggunakan ObjectInputStream
yang akan mengubah aliran kembali ke objek yang sesuai. Ini dikenal sebagai deserialization.
Buat ObjectInputStream
Untuk membuat aliran input objek, kita harus mengimpor java.io.ObjectInputStream
paket terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara kami membuat aliran input.
// Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream);
Dalam contoh di atas, kami telah membuat aliran input objek bernama objStream yang dihubungkan dengan aliran input file bernama fileStream.
Sekarang, objStream
dapat digunakan untuk membaca objek dari file.
Metode ObjectInputStream
The ObjectInputStream
kelas menyediakan implementasi dari metode yang berbeda hadir di InputStream
kelas.
read () Metode
read()
- membaca satu byte data dari aliran inputreadBoolean()
- membaca data dalam bentuk booleanreadChar()
- membaca data dalam bentuk karakterreadInt()
- membaca data dalam bentuk integerreadObject()
- membaca objek dari aliran input
Contoh 1: Java ObjectInputStream
Mari kita lihat bagaimana kita bisa menggunakan ObjectInputStream
kelas untuk membaca objek yang ditulis oleh ObjectOutputStream
kelas.
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"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method 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 metode readInt()
dan readObject()
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 ObjectInputStream
Mari kita lihat contoh praktis lainnya,
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 dog = new Dog("Tyson", "Labrador"); try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Keluaran
Nama Anjing: Tyson Dog Breed: Labrador
Dalam contoh di atas, kami telah membuat
ObjectOutputStream
keluaran bernama menggunakanFileOutputStream
file bernamaObjectInputStream
bernama input menggunakanFileInputStream
fileStream bernama- Seekor anjing objek dari kelas Anjing
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 ObjectInputStream
Metode | Deskripsi |
---|---|
available() | mengembalikan jumlah byte yang tersedia dalam aliran input |
mark() | menandai posisi dalam aliran input yang datanya telah dibaca |
reset() | mengembalikan kontrol ke titik dalam aliran input tempat tanda ditetapkan |
skipBytes() | melewatkan dan membuang byte yang ditentukan dari aliran input |
close() | menutup aliran masukan objek |
Untuk mempelajari lebih lanjut, kunjungi Java ObjectInputStream (dokumentasi resmi Java).