Java IO中對象的序列化操做

Java IO 中對象的序列化操做html

這是一個在IO中比較基礎的問題,可是由於不多用到,很容易遺忘,面試的時候可能會遇到,因此記錄到博客上,防止忘記java

其實代碼很簡單:主要是用到兩個類ObjectInputStream 和ObjectOutputStream 分別實現對類的讀取和寫入面試

注意的一點是:要序列化的類應該實現Serialiable接口,實際上是一個空的接口,包含寫入和讀取的測試程序代碼dom

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.UUID;


public class TestSerialized {
    /**
     * 把對象寫入文件
     * @throws Exception
     */
    public static void WriteObject(Object obj)throws Exception{
        FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
        ObjectOutputStream oos = new ObjectOutputStream(fis);
        oos.writeObject(obj);
        oos.close();
    }
    /**
     * 從文件讀取對象
     * @return
     * @throws Exception
     */Android的App列表之拖拽ListView(上)測試

    public static Object readObject() throws Exception {
        FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));
        ObjectInputStream oos = new ObjectInputStream(fis);
        return oos.readObject();
    }
    public static void testWrite() throws Exception{
        SerializedClass sc = new SerializedClass();
        sc.setId(UUID.randomUUID().toString());
        sc.setName("zhougege");
        WriteObject(sc);
        System.out.println("寫入的對象:");
        System.out.println(sc.getId());
        System.out.println(sc.getName());
    }WiiU 理念之魂htm

    public static void testRead() throws Exception{
        Object obj = readObject();
        SerializedClass sc = (SerializedClass)obj;
        System.out.println("讀取到的對象:");
        System.out.println(sc.getId());
        System.out.println(sc.getName());
    }
    public static void main(String[] args) throws Exception {
        testWrite();
        testRead();
    }
}
寫入對象的核心代碼對象

    /**
     * 把對象寫入文件
     * @throws Exception
     */
    public static void WriteObject(Object obj)throws Exception{
        FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj"));
        ObjectOutputStream oos = new ObjectOutputStream(fis);
        oos.writeObject(obj);
        oos.close();
    }blog

讀取對象的核心代碼接口

    /**
     * 從文件讀取對象
     * @return
     * @throws Exception
     */
    public static Object readObject() throws Exception {
        FileInputStream fis = new FileInputStream(new File("c:\\object.obj"));
        ObjectInputStream oos = new ObjectInputStream(fis);
        return oos.readObject();
    }get

相關文章
相關標籤/搜索