ホームページ  >  記事  >  Java  >  Javaのシリアル化と逆シリアル化のプロセスは何ですか?

Javaのシリアル化と逆シリアル化のプロセスは何ですか?

王林
王林オリジナル
2024-04-15 18:06:011140ブラウズ

Java のシリアル化と逆シリアル化には、次の手順が含まれます。 Serializable インターフェイスを実装するクラスをストリームに書き込む (シリアル化)。ストリームからオブジェクトを読み取ります (逆シリアル化します)。

Javaのシリアル化と逆シリアル化のプロセスは何ですか?

Java のシリアル化と逆シリアル化のプロセス

シリアル化

  1. 実装を作成する ## のクラス#Serializable インターフェイス。
  2. ObjectOutputStream オブジェクトを作成し、それをファイルまたはバイト ストリームに関連付けます。
  3. ObjectOutputStream.writeObject() メソッドを使用して、オブジェクトをストリームに書き込みます。

サンプル コード:

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class Employee implements Serializable {
    private String name;
    private int age;

    // 省略getter和setter方法

    public static void main(String[] args) {
        Employee employee = new Employee("John", 30);
        
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"))) {
            out.writeObject(employee);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

デシリアライゼーション

  1. ObjectInputStream を作成します。オブジェクトを取得し、それをファイルまたはバイト ストリームに関連付けます。
  2. ObjectInputStream.readObject() メソッドを使用してオブジェクトを読み取ります。

サンプル コード:

import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class DeserializeEmployee {
    public static void main(String[] args) {
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"))) {
            Employee employee = (Employee) in.readObject();
            System.out.println(employee.getName() + ", " + employee.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注:

  • Serializable ## のみを実装します。 # シリアル化できるのはインターフェイス クラスのみです。 シリアル化と逆シリアル化の順序は一貫している必要があります。
  • クラスの構造は、シリアル化と逆シリアル化の間で変更できません。
  • オブジェクトのシリアル化は、特に大きなオブジェクトの場合、時間がかかることがあります。

以上がJavaのシリアル化と逆シリアル化のプロセスは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。