Java ObjectInputStream (Dengan Contoh)

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

The ObjectInputStreamkelas dari java.iopaket dapat digunakan untuk membaca benda-benda yang sebelumnya ditulis oleh ObjectOutputStream.

Ini memperluas InputStreamkelas abstrak.

Sebelum Anda mempelajari tentang ObjectInputStreamkelas tersebut, pastikan Anda mengetahui tentang Kelas ObjectOutputStream.

Bekerja dari ObjectInputStream

Ini ObjectInputStreamterutama digunakan untuk membaca data yang ditulis oleh ObjectOutputStream.

Pada dasarnya, ObjectOutputStreammengubah 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 ObjectInputStreamyang akan mengubah aliran kembali ke objek yang sesuai. Ini dikenal sebagai deserialization.

Buat ObjectInputStream

Untuk membuat aliran input objek, kita harus mengimpor java.io.ObjectInputStreampaket 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, objStreamdapat digunakan untuk membaca objek dari file.

Metode ObjectInputStream

The ObjectInputStreamkelas menyediakan implementasi dari metode yang berbeda hadir di InputStreamkelas.

read () Metode

  • read() - membaca satu byte data dari aliran input
  • readBoolean() - membaca data dalam bentuk boolean
  • readChar() - membaca data dalam bentuk karakter
  • readInt() - membaca data dalam bentuk integer
  • readObject() - membaca objek dari aliran input

Contoh 1: Java ObjectInputStream

Mari kita lihat bagaimana kita bisa menggunakan ObjectInputStreamkelas untuk membaca objek yang ditulis oleh ObjectOutputStreamkelas.

 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 ObjectOutputStreamuntuk 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

  • ObjectOutputStreamkeluaran bernama menggunakan FileOutputStreamfile bernama
  • ObjectInputStreambernama input menggunakan FileInputStreamfileStream 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 Serializableantarmuka. Itu karena ObjectOutputStreamhanya 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).

Artikel yang menarik...