java
Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh.
ObjectOutputStream
kelas java.io
package dapat digunakan untuk menulis objek yang dapat dibaca oleh ObjectInputStream
.
Ini memperluas OutputStream
kelas abstrak.
Pada dasarnya, ObjectOutputStream
mengkodekan 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
class hanya menulis objek yang mengimplementasikan Serializable
antarmuka. Ini karena objek perlu diserialisasikan saat menulis ke aliran
Untuk membuat aliran keluaran objek, kita harus mengimpor java.io.ObjectOutputStream
paket dulu. Setelah kita mengimpor paket, berikut adalah bagaimana kita dapat 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 ditautkan dengan aliran keluaran file bernama fileStream .
ObjectOutputStream
class menyediakan implementasi untuk berbagai metode yang ada di OutputStream
kelas.
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
Mari kita lihat bagaimana kita dapat menggunakan ObjectOutputStream
untuk menyimpan objek dalam file dan ObjectInputStream
untuk 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
Integer data: 5 String data: This is programiz
Pada contoh di atas, kita 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
.
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
Dog Name: Tyson Dog Breed: Labrador
Pada contoh di atas, kami telah membuat
ObjectOutputStream
bernama objOut menggunakan FileOutputStream
bernama fileOut ObjectInputStream
bernama objIn menggunakan FileInputStream
bernama fileIn .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 yang dapat diserialkan ke aliran keluaran.
Metode | Deskripsi |
---|---|
flush() | menghapus semua data dari aliran keluaran |
drain() | menempatkan semua data buffer di aliran output |
close() | menutup aliran keluaran |
Untuk mempelajari lebih lanjut, kunjungi Java ObjectOutputStream (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