Javaのシリアル化とは何ですか

(*-*)浩
リリース: 2019-11-13 13:36:41
オリジナル
3290 人が閲覧しました

Javaのシリアル化とは何ですか

#シリアル化: ヒープ メモリ内の Java オブジェクト データを指します。このデータは何らかの方法でディスク ファイルに保存されるか、他のネットワーク ノードに渡されます (ネットワーク送信)。 。このプロセスはシリアル化と呼ばれ、通常はデータ構造またはオブジェクトをバイナリに変換するプロセスを指します。 (推奨学習: java コース )

オブジェクトを bin に変換するストレージまたはネットワーク送信用に使用できます。

シリアライゼーションの役割

① メモリ上のオブジェクトをファイルやデータベースに保存したい場合;

② ソケットを使用したい場合ネットワーク経由でオブジェクトを送信する場合;

③ RMI を介してオブジェクトを送信する場合

一部のアプリケーション シナリオでは、オブジェクトをバイナリに変換する必要があり、シリアル化によってオブジェクトが正常に読み取れることが保証されます。

Java シリアル化の実装

オブジェクトのシリアル化を実現するための最も直接的な操作は、Serializable インターフェイスを実装することです。

IO ストリームでオブジェクトを使用します。シリアル化操作を実装し、オブジェクトをファイルに保存して、それらを読み取ります。

最初にオブジェクトを作成し、Serializable インターフェイスを実装します:

import java.io.Serializable;

public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }
}
ログイン後にコピー

オブジェクト ストリームを使用して、オブジェクトの保存と読み取りのためのツール クラスを作成します:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SerializeUtil {
    // 保存对象,序列化
    public static void saveObject(Object object) throws Exception {
        ObjectOutputStream out = null;
        FileOutputStream fout = null;
        try {
            fout = new FileOutputStream("D:/1.txt");
            out = new ObjectOutputStream(fout);
            out.writeObject(object);
        } finally {
            fout.close();
            out.close();
        }
    }
    // 读取对象,反序列化
    public static Object readObject() throws Exception {
        ObjectInputStream in = null;
        FileInputStream fin = null;
        try {
            fin = new FileInputStream("D:/1.txt");
            in = new ObjectInputStream(fin);
            Object object = in.readObject();
            return object;
        } finally {
            fin.close();
            in.close();
        }
    }
}
ログイン後にコピー

テスト:

public class Main {
    public static void main(String[] args) {
        User user = new User();
        user.setName("旭旭宝宝");
        user.setAge(33);
        // 保存
        try {
            SerializeUtil.saveObject(user);
        } catch (Exception e) {
            System.out.println("保存时异常:" + e.getMessage());
        }
        // 读取
        User userObject;
        try {
            userObject = (User) SerializeUtil.readObject();
            System.out.println(userObject);
        } catch (Exception e) {
            System.out.println("读取时异常:" + e.getMessage());
        }
    }
}
ログイン後にコピー

テスト結果:

Javaのシリアル化とは何ですか

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート