PythonでJavaオブジェクトをデシリアライズするには、どうすればいいですか?

PythonでJavaオブジェクトを逆シリアル化するには、まずJavaオブジェクトをバイトストリームとしてシリアル化する必要があります。その後、Pythonのpickleモジュールを使用して逆シリアル化することができます。

Javaでオブジェクトをバイトストリームにシリアル化し、それをPythonでpickleモジュールを使ってデシリアライズする方法を示す例が以下にあります。

Javaのコード(オブジェクトをバイトストリームにシリアル化する):

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

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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        Person person = new Person("John", 30);

        try {
            FileOutputStream fileOut = new FileOutputStream("person.ser");
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            out.writeObject(person);
            out.close();
            fileOut.close();
            System.out.println("Serialized data is saved in person.ser");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上記のJavaコードを実行すると、Personオブジェクトをシリアル化したperson.serというファイルが生成されます。

Pythonスクリプト(Javaオブジェクトの逆シリアル化):

import pickle

with open("person.ser", "rb") as file:
    person = pickle.load(file)

print(person.name)  # 输出:John
print(person.age)  # 输出:30

Pythonで、pickleモジュールのload()関数を使用すると、バイト列から逆シリアル化されたオブジェクトをロードすることができます。open()関数にバイト列のファイル名を渡し、pickle.load()を使用してそのファイルを読み込み、逆シリアル化されたオブジェクトを返すことができます。

Pythonコードを実行する前に、PersonオブジェクトをJavaコードでシリアル化し、person.serファイルを生成してください。

bannerAds