java
Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh.
ObjectInputStream
kelas java.io
package dapat digunakan untuk membaca objek yang sebelumnya ditulis oleh ObjectOutputStream
.
Ini memperluas InputStream
kelas abstrak.
Sebelum Anda mempelajari tentang ObjectInputStream
kelas, pastikan Anda tahu tentang Kelas ObjectOutputStream.
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 tersebut, kita akan menggunakan ObjectInputStream
yang akan mengubah aliran kembali ke objek yang sesuai. Ini dikenal sebagai deserialisasi.
Untuk membuat aliran input objek, kita harus mengimpor java.io.ObjectInputStream
paket dulu. Setelah kita mengimpor paket, berikut adalah cara 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 ditautkan dengan aliran input file bernama fileStream .
Sekarang, objStream
dapat digunakan untuk membaca objek dari file.
ObjectInputStream
class menyediakan implementasi dari berbagai metode yang ada di InputStream
kelas.
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
Mari kita lihat bagaimana kita dapat 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
Integer data: 5 String data: This is programiz
Dalam contoh di atas, kami telah menggunakan readInt()
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
.
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
Dog Name: Tyson Dog Breed: Labrador
Pada contoh di atas, kami telah membuat
ObjectOutputStream
bernama keluaran menggunakan FileOutputStream
bernama file ObjectInputStream
bernama input menggunakan FileInputStream
bernama fileStream Di sini, kami kemudian menggunakan aliran keluaran objek untuk menulis objek ke file. Dan, aliran input objek untuk membaca objek dari file.
Catatan :Anjing kelas mengimplementasikan Serializable
antarmuka. Itu karena ObjectOutputStream
hanya menulis objek serial ke aliran output.
Metode | Deskripsi |
---|---|
available() | mengembalikan jumlah byte yang tersedia di aliran input |
mark() | menandai posisi dalam aliran input hingga data yang telah dibaca |
reset() | mengembalikan kontrol ke titik di aliran input tempat tanda ditetapkan |
skipBytes() | melewati dan membuang byte yang ditentukan dari aliran input |
close() | menutup aliran input objek |
Untuk mempelajari lebih lanjut, kunjungi Java ObjectInputStream (dokumentasi resmi Java).
java
Kelas Penulis Java Dalam tutorial ini, kita akan belajar tentang Java Writer, subclass-nya dan metodenya dengan bantuan sebuah contoh. Writer kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Writer adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun
Kelas InputStreamReader Java Dalam tutorial ini, kita akan belajar tentang Java InputStreamReader dan metodenya dengan bantuan contoh. InputStreamReader kelas java.io package dapat digunakan untuk mengubah data dalam byte menjadi data dalam karakter. Ini memperluas kelas abstrak Reader . InputS
Kelas OutputStreamWriter Java Dalam tutorial ini, kita akan belajar tentang Java OutputStreamWriter dan metodenya dengan bantuan contoh. OutputStreamWriter kelas java.io package dapat digunakan untuk mengubah data dalam bentuk karakter menjadi data dalam bentuk byte. Ini memperluas kelas abstrak W
Kelas Pembaca File Java Dalam tutorial ini, kita akan belajar tentang Java FileReader dan metodenya dengan bantuan contoh. FileReader kelas java.io package dapat digunakan untuk membaca data (dalam karakter) dari file. Ini memperluas InputSreamReader kelas. Sebelum Anda mempelajari tentang File