ホームページ >Java >&#&チュートリアル >Javaのシリアル化と逆シリアル化にはどのような種類がありますか?

Javaのシリアル化と逆シリアル化にはどのような種類がありますか?

WBOY
WBOYオリジナル
2024-04-15 12:39:021068ブラウズ

Java シリアル化では、次のタイプのシリアル化が提供されます: 1. 基本データ型シリアル化、2. クラスが java.io.Serializable インターフェイスを実装する必要がある、外部化と逆シリアル化、オブジェクトが実装する必要があります。 java .io.Externalizable インターフェイス。実際の戦闘では、オブジェクト情報を直接保存および読み取りできます。

Javaのシリアル化と逆シリアル化にはどのような種類がありますか?

Java シリアル化の種類

Java シリアル化は、オブジェクトの状態を永続ストレージに保存したり、それを送信したりする方法です。ネットワークのプロセス。 Java は次のタイプのシリアル化を提供します。

1. 基本データ型シリアル化

基本データ型 (int、long、double など) は直接シリアル化できます。

// 基本数据类型序列化
int num = 100;
OutputStream out = new FileOutputStream("num.ser");
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(num);
oos.close();

2. オブジェクトのシリアル化

オブジェクトをシリアル化するには、クラスで java.io.Serializable インターフェイスを実装する必要があります。

// 对象序列化
class Person implements Serializable {
    private String name;
    private int age;

    // ...
}

Person person = new Person();
OutputStream out = new FileOutputStream("person.ser");
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(person);
oos.close();

3. 外部化と逆シリアル化

外部化により、シリアル化と逆シリアル化のプロセスをカスタマイズできます。オブジェクトは java.io.Externalizable インターフェースを実装する必要があります。

// 外部化
public void writeExternal(ObjectOutput out) {
    out.writeObject(name);
    out.writeInt(age);
}

// 反序列化
public void readExternal(ObjectInput in) {
    this.name = (String) in.readObject();
    this.age = in.readInt();
}

実践的なケース

ケース: ユーザー情報の保存と読み取り

// 存储用户信息
UserInfo user = new UserInfo();
OutputStream out = new FileOutputStream("user.ser");
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(user);
oos.close();

// 读取用户信息
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.ser"));
UserInfo user2 = (UserInfo) ois.readObject();
ois.close();

以上がJavaのシリアル化と逆シリアル化にはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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