Java I/O ストリームは、送信または保存のためにオブジェクトをシリアル化および逆シリアル化できます。具体的な手順は次のとおりです。オブジェクトに Serializable インターフェイスを実装し、入力ストリーム Get から読み取ったオブジェクトをシリアル化します。バイト ストリーム。ObjectInputStream を使用してバイト ストリームをオブジェクトに逆シリアル化します。
Java I/O ストリーム処理のシリアル化されたオブジェクト
はじめに
シリアル化はプロセスですオブジェクトをバイトのストリームに変換して、ネットワークまたはストレージデバイス上で送信または保存できるようにすること。逆シリアル化はその逆のプロセスで、バイト ストリームからオブジェクトを再構築します。 Java では、シリアル化と逆シリアル化は I/O ストリームを通じて行われます。
オブジェクトのシリアル化
オブジェクトをシリアル化するには、次のことを行う必要があります。
Serializable
インターフェイスを実装させます。 ObjectOutputStream
を使用して、オブジェクトを出力ストリームに書き込みます。 // 序列化一个对象 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser")); oos.writeObject(object); oos.close();
オブジェクトの逆シリアル化
オブジェクトを逆シリアル化するには、次の操作を行う必要があります。
ObjectInputStream
を使用して、バイト ストリームをオブジェクトに逆シリアル化します。 // 反序列化一个对象 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser")); Object object = ois.readObject(); ois.close();
実践的なケース
Student クラスを作成し、シリアル化可能にして、シリアル化と逆シリアル化のプロセスをデモしてみましょう:
import java.io.Serializable; public class Student implements Serializable { private int id; private String name; // 构造函数和 getter/setter 略... } public class Main { public static void main(String[] args) { // 创建一个 Student 对象 Student student = new Student(1, "John Doe"); // 序列化该对象 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser"))) { oos.writeObject(student); } catch (IOException e) { e.printStackTrace(); } // 反序列化该对象 try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser"))) { Student deserializedStudent = (Student) ois.readObject(); System.out.println(deserializedStudent.getId() + " " + deserializedStudent.getName()); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }
このコードを実行すると、出力: 1 John Doe
。オブジェクトが正常にシリアル化および逆シリアル化されたことを示します。
以上がJava I/O ストリームはシリアル化されたオブジェクトをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。