ホームページ  >  記事  >  Java  >  Javaのシリアル化と逆シリアル化を行うにはどうすればよいですか?

Javaのシリアル化と逆シリアル化を行うにはどうすればよいですか?

王林
王林オリジナル
2024-04-15 10:33:02367ブラウズ

Java のシリアル化と逆シリアル化は、オブジェクトをバイトのシーケンスとして保存するための永続化メカニズムです。シリアル化では、java.io.Serializable インターフェイスと ObjectOutputStream を使用して、オブジェクトをファイルまたはネットワークに書き込みます。逆シリアル化では、ObjectInputStream を使用してファイルまたはネットワークからバイト シーケンスを読み取り、元のオブジェクトを再構築します。 Java では、シリアル化と逆シリアル化は、後で再ロードするためにユーザー オブジェクトを永続化するなど、オブジェクトを永続化するために使用されます。

Javaのシリアル化と逆シリアル化を行うにはどうすればよいですか?

Java シリアル化と逆シリアル化の詳細ガイド

はじめに

シリアル化とは、後で逆シリアル化して元のオブジェクトを再構築できるように、オブジェクトをファイルまたはネットワークにバイトとして保存することを指します。逆シリアル化はその逆で、バイト形式のデータを生のオブジェクトに変換します。

シリアル化

Java では、java.io.Serializable インターフェイスを使用してオブジェクトをシリアル化できます。オブジェクトをファイルにシリアル化するには、ObjectOutputStream を使用できます。

// 创建一个对象要序列化的 FileOutputStream
FileOutputStream fileOut = new FileOutputStream("object.ser");

// 使用 ObjectOutputStream 将对象写入文件中
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(myObject);

// 关闭 ObjectOutputStream
out.close();

Deserialization

ファイルからオブジェクトを逆シリアル化するには、次を使用できます。 ObjectInputStream:

// 创建一个 FileInputStream 以读取序列化的文件
FileInputStream fileIn = new FileInputStream("object.ser");

// 使用 ObjectInputStream 从文件中读取对象
ObjectInputStream in = new ObjectInputStream(fileIn);
MyObject myDeserializedObject = (MyObject) in.readObject();

// 关闭 ObjectInputStream
in.close();

実用的なケース: 永続ユーザー オブジェクト

User オブジェクトがあると仮定します。永続化のためにファイルに保存されます。これを行うことができます。

// 创建一个 User 对象
User user = new User("John", "Doe");

// 将 User 对象序列化到文件中
FileOutputStream fileOut = new FileOutputStream("user.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(user);
out.close();

// 从文件中反序列化 User 对象
FileInputStream fileIn = new FileInputStream("user.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
User deserializedUser = (User) in.readObject();
in.close();

// 确认反序列化的 User 对象
System.out.println(deserializedUser.getName() + " " + deserializedUser.getLastName()); // 打印:John Doe

結論

Java シリアル化は、オブジェクトを永続化するための強力なメカニズムです。 java.io.Serializable インターフェイスと ObjectOutputStream および ObjectInputStream クラスを通じて、オブジェクトを簡単にシリアル化および逆シリアル化できます。

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

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