JavaSE知识点16java序列化

2017-04-04  本文已影响0人  paulpaullong

什么是序列化和反序列化?

什么情况下需要序列化?

如何实现序列化?

package com.serialize;  
  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.ObjectInputStream;  
import java.io.ObjectOutputStream;  
import java.io.Serializable;  
  
public class Serialize implements Serializable{  
  
    private static final long serialVersionUID = -5211389707739541364L;  
    public int num = 1390;  
  
    public void serialized()  
    {  
        try {  
            FileOutputStream fos = new FileOutputStream("serialize.obj");  
            ObjectOutputStream oos = new ObjectOutputStream(fos);  
            Serialize serialize = new Serialize();  
            oos.writeObject(serialize);  
            oos.flush();  
            oos.close();//只是为了方便简洁的做个例子,真实编程要放到finally下,懂的人你懂的。  
            fos.close();  
            System.out.println("序列化结束");  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
  
    public void deserialized()  
    {  
        Serialize serialize = null;  
        try  
        {  
            FileInputStream fis = new FileInputStream("serialize.obj");  
            ObjectInputStream ois = new ObjectInputStream(fis);  
  
            serialize = (Serialize) ois.readObject();  
            ois.close();  
            fis.close();  
            System.out.println("反序列化结束");  
        }  
        catch (ClassNotFoundException | IOException e)  
        {  
            e.printStackTrace();  
        }  
        System.out.println(serialize.num);  
    }  
  
    public static void main(String[] args)   
    {  
        Serialize serialize = new Serialize();  
        serialize.serialized();  
        serialize.deserialized();  
    }  
}  

运行结果如下:

序列化结束  
反序列化结束  
1390  

序列化总结

上一篇 下一篇

猜你喜欢

热点阅读