中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Java對(duì)對(duì)象的序列化和反序列化

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

Java提供了將對(duì)象以字節(jié)的形式寫(xiě)入到磁盤中,在需要的時(shí)候在從磁盤中恢復(fù)的功能,在網(wǎng)絡(luò)傳輸中非常有用,下面將代碼貼上,分別用兩種形式實(shí)現(xiàn)了對(duì)象的序列化,其中第二種當(dāng)時(shí)能將指定的變量序列化,更加人性化的隨心所欲

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
 * @use 實(shí)現(xiàn)對(duì)對(duì)象的序列化和反序列化
 * @author Bird
 *
 */
public class Data {
    public static void writeObject() throws Exception{
        Worm worm = new Worm("Bird");
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("d://worm.out"));
        out.writeObject(worm);
        out.close();//關(guān)閉的同時(shí)也刷新清空了緩沖區(qū)
    }
     
     
    public static void readObject() throws Exception{
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("d://worm.out"));
        Worm s2 = (Worm) in.readObject();
        System.out.println(s2);
    }
     
    public static void main(String[] args) throws Exception{
    //  writeObject();
        readObject();
    }
}
 
 
class Worm implements Serializable{
     
    private static final long serialVersionUID = 1L;
    private String name = null;
    public Worm(String name){
        this.name = name;
    }
     
    public String toString(){
        return name;
    }
}
 

下面這是第二種方式
import java.io.Externalizable;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
/**
 * @use 第二種可控制序列化變量個(gè)數(shù)的方式
 * @author Bird
 *
 */
public class Blip3 implements Externalizable {
    private int i;
    private String s;//沒(méi)有實(shí)例化
    public Blip3(){
        System.out.println("Blip3 Constructor!!");
    }
    //注意  這里的s沒(méi)有實(shí)例化
     
    public Blip3(String x, int a){
        System.out.println("Blip3(String x, int a)");
        s = x;
        i = a;
        //s  和 i實(shí)例化在非默認(rèn)構(gòu)造函數(shù)中
    }
     
    public String toString(){
        return s + i;
    }
     
    public void writeExternal(ObjectOutput out){//可選擇寫(xiě)入變量
        System.out.println("Blip3.writeExternal");
        try {
            out.writeObject(s);
            out.writeInt(i);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }//必須進(jìn)行這兩項(xiàng),否則就一個(gè)變量也不出初始化
    }
     
    public void readExternal(ObjectInput in){//可選擇讀入數(shù)據(jù)
        System.out.println("Blip3.readExternal");
        try {
            s = (String)in.readObject();
            i = in.readInt();
        } catch (ClassNotFoundException e) {
             
        } catch (IOException e) {
        throw new RuntimeException(e);
        }
         
    }
     
    public void read() throws FileNotFoundException, IOException, ClassNotFoundException{//讀取序列化的類
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("d://Blip3.out"));
        System.out.println("Revovering  b3");
        Blip3 b3 = (Blip3)in.readObject();
        System.out.println(b3);
    }
     
    public void write() throws Exception{//寫(xiě)入對(duì)象
        Blip3 b3 = new Blip3("A String", 47);
        System.out.println(b3);
        ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("d://Blip3.out"));
        System.out.println("Saving Object");
        o.writeObject(b3);
        o.close();
    }
     
    public static void main(String[] args) throws Exception{
        Blip3 b = new Blip3();
        //  b.write();
        b.read();
    }
}
 

標(biāo)簽: 代碼 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:java歸并排序算法代碼

下一篇:Java生成各種條形碼