シーケンス化と逆シーケンス化、およびなぜSerializableインタフェースを実装するか

7614 ワード

記憶力がいいなら筆頭を頼りにしたほうがいい......
Serializableインタフェースを実装する理由:Serializableインタフェースは、シーケンス化機能を有効にするインタフェースです.Javaを実装する.io.Serializableインタフェースのクラスはシーケンス化可能です.このインタフェースを実装していないクラスでは、いずれかのステータスをシーケンス化または逆シーケンス化することはできません.
シーケンス化:classファイルおよびコンテンツをストリームを介してファイルに書き込み(永続化とも呼ばれる)、逆シーケンス化:ファイルコンテンツを指定したclassクラスに変換し、読み込んだコンテンツを埋め込む
--------------------------------------------------------------------------   --------------------------------------------------------------------------
package com.Ckinghan.objectStream;

import java.io.Serializable;

public class Persion implements Serializable{
    /**
     *    ID
     */
    private static final long serialVersionUID = 4914051092502785039L;

    private String name;

    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void name() {

    }

    @Override
    public String toString() {
        return "Persion [name=" + name + ", age=" + age + "]";
    }
}


--------------------------------------------------------------------------        --------------------------------------------------------------------------

package com.Ckinghan.objectStream;

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

public class ObjectStreamDemo {

    public static void main(String[] args) {
        /**
         *    (   ,     class      )   
         */
        objectOutputStream();

        /**
         *       (       class      )
         */
        objectInputStream();

    }

    /**
     * @  :      (       class      )
     * @    :
     */
    public static void objectInputStream(){
        //   
        ObjectInputStream objectInputStream = null;
        try {
            //     
            objectInputStream = new ObjectInputStream(new FileInputStream("persion.txt"));
            /**
             *     ,              class      
             */
            Persion persion = (Persion)objectInputStream.readObject();
            //  
            System.out.println(persion);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            //   
            if(objectInputStream != null){
                try {
                    objectInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    /**
     * @  :   (   )   
     * @    :
     */
    public static void objectOutputStream(){
        //    
        ObjectOutputStream objectOutputStream = null;

        try {
            //     
            objectOutputStream = new ObjectOutputStream(new FileOutputStream("persion.txt"));
            //          
            Persion persion = new Persion();
            persion.setAge(20);
            persion.setName("  ");
            //     
            objectOutputStream.writeObject(persion);
            //  
            System.out.println("   Persion  ");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //   
            if(objectOutputStream != null){
                try {
                    objectOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}


*******************    :

   Persion  
Persion [name=  , age=20]