検索
ホームページJava&#&ベースJavaのシリアル化とは何ですか

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール