Rumah Java javaTutorial Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa?

Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa?

Aug 02, 2023 pm 02:37 PM
- java - bersiri - Penyahserikatan

Bagaimana untuk mencapai ketekunan objek menggunakan pensirilan dan penyahserikatan dalam Java?

Pengenalan:
Dalam pembangunan Java, ketekunan objek ialah cara penting untuk mencapai penyimpanan data jangka panjang. Pensirian dan penyahserikatan adalah salah satu cara yang biasa digunakan untuk mencapai kegigihan objek di Jawa. Artikel ini akan memperkenalkan konsep bersiri dan penyahserikatan dan cara menggunakan pensirilan dan penyahserikatan dalam Java untuk mencapai kegigihan objek.

1. Apakah pesirilan dan penyahserilan?
Siri ialah proses menukar objek kepada aliran bait supaya objek boleh disalin dan dihantar semasa operasi seperti penghantaran rangkaian atau menyimpan ke cakera. Deserialisasi ialah proses menukar semula aliran bait kepada objek dan memulihkan keadaan dan data objek. Di Java, pensirilan objek dan penyahserikatan dicapai dengan melaksanakan antara muka Boleh Bersiri.

2. Cara melaksanakan siri
Java menyediakan dua kaedah siri utama, iaitu siri berasaskan aliran bait dan siri berasaskan aliran aksara.

1. Pensirian berdasarkan aliran bait
Pensirian berdasarkan aliran bait boleh dilaksanakan melalui kelas ObjectOutputStream dan ObjectInputStream. Berikut ialah kod sampel yang menunjukkan cara mensiri dan menyahsiri objek menggunakan pendekatan berasaskan aliran bait.

import java.io.*;

public class ByteStreamSerializationDemo {
    public static void main(String[] args) {
        // 将对象序列化为字节流
        try {
            // 创建一个待序列化的对象
            Person person = new Person("Tom", 30);
            
            // 创建一个输出流
            FileOutputStream fileOutputStream = new FileOutputStream("person.obj");
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
            
            // 将对象写入输出流
            objectOutputStream.writeObject(person);
            
            // 关闭输出流
            objectOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // 将字节流反序列化为对象
        try {
            // 创建一个输入流
            FileInputStream fileInputStream = new FileInputStream("person.obj");
            ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
            
            // 读取对象数据
            Person person = (Person) objectInputStream.readObject();
            
            // 打印对象数据
            System.out.println(person.getName());   // 输出:Tom
            System.out.println(person.getAge());    // 输出:30
            
            // 关闭输入流
            objectInputStream.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

class Person implements Serializable {
    private String name;
    private int age;
    
    // 构造方法、getter和setter省略
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mencipta objek Orang untuk disiri, dan kemudian mensirikan objek itu ke dalam aliran bait melalui kelas FileOutputStream dan ObjectOutputStream dan menulisnya pada fail. Seterusnya, kami menyahsiri aliran bait dalam fail menjadi objek melalui kelas FileInputStream dan ObjectInputStream, dan akhirnya mencetak nilai atribut objek.

2. Pensirian berdasarkan aliran aksara
Pensiran berdasarkan aliran aksara boleh dilaksanakan melalui kelas ObjectWriter dan ObjectReader.

import java.io.*;

public class CharacterStreamSerializationDemo {
    public static void main(String[] args) {
        // 将对象序列化为字符流
        try {
            // 创建一个待序列化的对象
            Person person = new Person("Tom", 30);
            
            // 创建一个Writer
            FileWriter fileWriter = new FileWriter("person.txt");
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
            ObjectWriter objectWriter = new ObjectWriter(bufferedWriter);
            
            // 将对象写入字符流
            objectWriter.writeObject(person);
            
            // 关闭字符流
            objectWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // 将字符流反序列化为对象
        try {
            // 创建一个Reader
            FileReader fileReader = new FileReader("person.txt");
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            ObjectReader objectReader = new ObjectReader(bufferedReader);
            
            // 读取对象数据
            Person person = (Person) objectReader.readObject();
            
            // 打印对象数据
            System.out.println(person.getName());   // 输出:Tom
            System.out.println(person.getAge());    // 输出:30
            
            // 关闭字符流
            objectReader.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

class Person implements Serializable {
    private String name;
    private int age;
    
    // 构造方法、getter和setter省略
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menyerikan objek ke dalam aliran aksara melalui kelas FileWriter, BufferedWriter dan ObjectWriter dan menulisnya pada fail. Kemudian, aliran aksara dalam fail dinyahsiri menjadi objek melalui kelas FileReader, BufferedReader dan ObjectReader, dan akhirnya nilai atribut objek boleh dicetak.

3. Nota
Apabila menggunakan pensirilan dan penyahserilan dalam Java untuk mencapai ketekunan objek, anda perlu memberi perhatian kepada perkara berikut:

1 Kelas objek mesti melaksanakan antara muka Bersiri, jika tidak, pensirilan dan penyahserilan tidak boleh dilakukan .
2. Semua objek yang dirujuk dalam kelas bersiri juga mesti boleh bersiri.
3 Medan kelas bersiri dan desiri boleh terdiri daripada sebarang jenis, termasuk kelas tersuai, jenis data asas, jenis pengumpulan, dsb.
4. Medan kelas bersiri dan desiri boleh diubah suai sementara, dan ia tidak akan berterusan.

Kesimpulan:
Melalui pengenalan artikel ini, kami mempelajari apa itu serialisasi dan deserialisasi, dan menunjukkan melalui contoh kod cara menggunakan serialisasi dan deserialisasi dalam Java untuk mencapai kegigihan objek. Dalam pembangunan sebenar, penyimpanan jangka panjang dan penghantaran objek boleh dicapai dengan memilih kaedah bersiri yang sesuai mengikut keperluan dan mengikut spesifikasi dan langkah berjaga-jaga bersiri.

Atas ialah kandungan terperinci Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membangunkan aplikasi data geolokasi berasaskan Cassandra menggunakan Java Bagaimana untuk membangunkan aplikasi data geolokasi berasaskan Cassandra menggunakan Java Sep 20, 2023 pm 06:19 PM

Cara menggunakan Java untuk membangunkan aplikasi data geolokasi berasaskan Cassandra Aplikasi data geolokasi digunakan secara meluas dalam masyarakat moden, seperti navigasi peta, perkongsian lokasi, pengesyoran lokasi, dsb. Cassandra ialah pangkalan data NoSQL yang diedarkan dan berskala tinggi yang boleh mengendalikan sejumlah besar data dan amat sesuai untuk menyimpan dan menanyakan data lokasi geografi. Artikel ini akan memperkenalkan cara menggunakan Java untuk membangunkan aplikasi data lokasi geografi berasaskan Cassandra dan memberikan contoh kod khusus. 1. Persekitaran

Bagaimana untuk menggunakan kaedah LinkedList.removeFirst() dalam Java untuk memadamkan elemen daripada kepala senarai terpaut? Bagaimana untuk menggunakan kaedah LinkedList.removeFirst() dalam Java untuk memadamkan elemen daripada kepala senarai terpaut? Nov 18, 2023 am 11:10 AM

Kelas LinkedList dalam Java ialah kelas yang melaksanakan struktur data senarai terpaut Ia menyediakan banyak kaedah berguna untuk mengendalikan senarai terpaut. Antaranya, kaedah removeFirst() boleh digunakan untuk memadam elemen daripada kepala senarai terpaut. Berikut akan memperkenalkan cara menggunakan kaedah LinkedList.removeFirst() dan memberikan contoh kod khusus. Sebelum menggunakan kaedah LinkedList.removeFirst(), kita perlu membuat LinkedList terlebih dahulu

Pasang dan mulakan dengan cepat dengan Kafka dalam Linux: panduan langkah demi langkah Pasang dan mulakan dengan cepat dengan Kafka dalam Linux: panduan langkah demi langkah Jan 31, 2024 pm 09:26 PM

Langkah terperinci untuk memasang Kafka dalam persekitaran Linux 1. Prasyarat Sistem pengendalian: Linux (Ubuntu atau CentOS disyorkan) Java: JDK8 atau lebih tinggi ZooKeeper: versi 3.4 atau lebih tinggi Kafka: versi stabil terkini 2. Pasang Javasudoapt-getupdatesudoapt- getinstalldefault-jdk3. Pasang ZooKeeperwg

Melaksanakan kaunter teragih menggunakan Redis dan Java: Bagaimana untuk mencapai konkurensi tinggi Melaksanakan kaunter teragih menggunakan Redis dan Java: Bagaimana untuk mencapai konkurensi tinggi Jul 29, 2023 am 08:21 AM

Melaksanakan kaunter teragih menggunakan Redis dan Java: Bagaimana untuk mencapai keselarasan tinggi Pengenalan: Dalam pembangunan aplikasi Internet moden, keselarasan tinggi adalah cabaran biasa. Apabila berbilang pengguna mengakses aplikasi pada masa yang sama, ia perlu dapat mengendalikan dan menjejaki permintaan setiap pengguna dengan betul untuk mengelakkan kehilangan data atau kekeliruan. Dalam artikel ini, kami akan membincangkan cara melaksanakan kaunter teragih menggunakan Redis dan Java untuk mencapai penjejakan dan pengurusan data konkurensi tinggi. 1. Pengenalan kepada Redis Redis ialah pangkalan sumber terbuka

Menggunakan Dropbox untuk pengurusan storan dalam pembangunan API Java Menggunakan Dropbox untuk pengurusan storan dalam pembangunan API Java Jun 18, 2023 pm 01:21 PM

Menggunakan Dropbox untuk pengurusan storan dalam pembangunan API Java Dengan aplikasi pengkomputeran awan yang meluas, semakin banyak aplikasi perlu menyimpan data dalam awan dan boleh membaca, menulis dan mengurus data ini dengan mudah. Sebagai salah satu perkhidmatan storan awan yang paling popular, Dropbox menyediakan API terkaya dan paling fleksibel, membolehkan pembangun menyepadukan fungsi pengurusan storan Dropbox dengan mudah ke dalam aplikasi mereka. Artikel ini akan memperkenalkan cara menggunakan Dr dalam pembangunan JavaAPI

Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa? Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa? Aug 02, 2023 pm 02:37 PM

Bagaimana untuk mencapai kegigihan objek menggunakan serialisasi dan deserialisasi di Jawa? Pengenalan: Dalam pembangunan Java, ketekunan objek ialah cara penting untuk mencapai penyimpanan data jangka panjang. Pensirian dan penyahserikatan adalah salah satu cara yang biasa digunakan untuk mencapai kegigihan objek di Jawa. Artikel ini akan memperkenalkan konsep bersiri dan penyahserikatan dan cara menggunakan pensirilan dan penyahserikatan dalam Java untuk mencapai kegigihan objek. 1. Apakah penyiaran dan penyahserikatan? Serialisasi ialah proses menukar objek kepada aliran bait supaya objek boleh dihantar atau disimpan melalui rangkaian.

Bagaimana untuk membangunkan tugas kemas kini cache menggunakan Redis dan Ruby Bagaimana untuk membangunkan tugas kemas kini cache menggunakan Redis dan Ruby Jul 31, 2023 pm 12:33 PM

Cara membangunkan tugas kemas kini cache menggunakan Redis dan Ruby Pengenalan: Dalam aplikasi web moden, caching adalah bahagian penting dalam meningkatkan prestasi dan mengurangkan masa tindak balas. Redis ialah pangkalan data nilai kunci berprestasi tinggi yang boleh digunakan untuk membaca dan menulis data dengan cepat, dan ia menyokong pelbagai struktur data, seperti rentetan, jadual cincang, senarai, dsb. Dalam artikel ini, kami akan meneroka cara membangunkan tugas kemas kini cache menggunakan Redis dan Ruby untuk mencapai pengurusan dan kemas kini cache yang lebih cekap. Langkah 1: Pasang dan Konfigurasikan Redis Pertama, I

Cara menggunakan operasi skrip Linux untuk melaksanakan log masuk jauh di Java Cara menggunakan operasi skrip Linux untuk melaksanakan log masuk jauh di Java Oct 05, 2023 am 08:42 AM

Gambaran keseluruhan cara menggunakan operasi skrip Linux untuk melaksanakan log masuk jauh dalam Java: Log masuk jauh ialah cara menggunakan satu komputer untuk log masuk ke komputer lain dalam persekitaran rangkaian untuk melaksanakan operasi. Dalam sistem Linux, kami biasanya menggunakan protokol SSH untuk log masuk jauh. Artikel ini akan memperkenalkan cara melaksanakan operasi log masuk jauh dengan memanggil skrip Linux dalam Java dan memberikan contoh kod khusus. Langkah 1: Tulis kod skrip Linux Mula-mula, kita perlu menulis skrip Linux untuk lulus

See all articles