Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Serialisasi Objek Java: Menyimpan dan Memulihkan Objek

Java menyediakan mekanisme, yang disebut serialisasi objek di mana suatu objek dapat direpresentasikan sebagai urutan byte yang mencakup data objek serta informasi tentang tipe objek dan tipe data yang disimpan dalam objek.

Setelah objek yang diserialkan ditulis ke berkas, ia dapat dibaca dari berkas dan dideserialkan, yaitu informasi tipe dan byte yang mewakili objek dan datanya dapat digunakan untuk mewujudkan objek kembali di memori.

Yang paling mengesankan adalah seluruh proses independen JVM, artinya objek dapat diserialkan di satu platform dan dideserialkan di platform yang sama sekali berbeda.

Kelas ObjectInputStream dan ObjectOutputStream adalah aliran tingkat tinggi yang berisi metode untuk menyiasatkan dan dideserialisasi objek.

Kelas ObjectOutputStream berisi banyak metode write untuk menulis berbagai tipe data, tetapi satu metode khusus yang menonjol:

 public final void writeObject(Object x) throws IOException 

Metode di atas menyiasatkan Objek dan mengirimkannya ke aliran output. Sebaliknya, kelas ObjectInputStream berisi metode berikut untuk dideserialisasi objek:

 public final Object readObject() throws IOException, ClassNotFoundException 

Metode ini mengambil Objek berikutnya dari aliran dan dideserialkan. Nilai pengembalian adalah Object, jadi Anda perlu me-cast-nya ke tipe data yang sesuai.

Untuk menunjukkan cara kerja serialisasi di Java, saya akan menggunakan kelas Employee yang kita bahas sebelumnya dalam buku ini. Misalkan kita memiliki kelas Employee berikut, yang mengimplementasikan antarmuka Serializable:

Contoh

 public class Employee implements java.io.Serializable { public String name; public String address; public transient int SSN; public int number; public void mailCheck() { System.out.println("Mengirim cek ke " + name + " " + address); } } 

Perhatikan bahwa agar suatu kelas dapat diserialkan dengan sukses, dua kondisi harus terpenuhi:

Jika Anda ingin tahu apakah Kelas Standar Java dapat diserialkan atau tidak, periksa dokumentasi kelas. Tesnya sederhana: Jika kelas mengimplementasikan java.io.Serializable, maka dapat diserialkan; jika tidak, tidak dapat.

Mengserialisasi Objek

Kelas ObjectOutputStream digunakan untuk menyiasatkan Objek. Program SerializeDemo berikut membuat objek Employee dan menyiasatkannya ke berkas.

Setelah program selesai dieksekusi, berkas bernama employee.ser dibuat. Program tidak menghasilkan output apa pun, tetapi pelajari kode dan coba tentukan apa yang dilakukan program.

Catatan – Saat menyiasatkan objek ke berkas, konvensi standar di Java adalah memberikan berkas ekstensi .ser.

Contoh

 import java.io.*; public class SerializeDemo { public static void main(String [] args) { Employee e = new Employee(); e.name = "Reyan Ali"; e.address = "Phokka Kuan, Ambehta Peer"; e.SSN = 11122333; e.number = 101; try { FileOutputStream fileOut = new FileOutputStream("/tmp/employee.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(e); out.close(); fileOut.close(); System.out.printf("Data yang disimpan disimpan di /tmp/employee.ser"); } catch (IOException i) { i.printStackTrace(); } } } 

Mengembalikan Objek

Program DeserializeDemo berikut mengembalikan objek Employee yang dibuat dalam program SerializeDemo. Pelajari program dan coba tentukan keluaran:

Contoh

 import java.io.*; public class DeserializeDemo { public static void main(String [] args) { Employee e = null; try { FileInputStream fileIn = new FileInputStream("/tmp/employee.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); e = (Employee) in.readObject(); in.close(); fileIn.close(); } catch (IOException i) { i.printStackTrace(); return; } catch (ClassNotFoundException c) { System.out.println("Kelas Employee tidak ditemukan"); c.printStackTrace(); return; } System.out.println("Employee yang dikembalikan..."); System.out.println("Nama: " + e.name); System.out.println("Alamat: " + e.address); System.out.println("SSN: " + e.SSN); System.out.println("Nomor: " + e.number); } } 

Ini akan menghasilkan hasil berikut:

Keluaran

 Employee yang dikembalikan... Nama: Reyan Ali Alamat:Phokka Kuan, Ambehta Peer SSN: 0 Nomor:101 

Berikut adalah beberapa poin penting yang perlu diperhatikan:

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  4. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  5. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  6. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  7. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  8. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe
  9. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan
  10. Menguasai Java: Memahami Objek, Kelas, dan Konsep OOP Inti