java IO之ObjectInputStream和ObjectOutputStream

package com.io.test;

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;

import org.junit.Test;

/**
 * 直接把object写入或者读出
 * 
 * 
@author chengjj
 * 
 
*/
public class TestObjectStream {
    @Test
    public void testObjectStream() {
        try {
            T t = new T();
            t.k = 8;
            FileOutputStream fos = new FileOutputStream("E:/4.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(t);
            oos.flush();
            oos.close();

            FileInputStream fis = new FileInputStream("E:/4.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            T otherT = (T) ois.readObject();
            System.out.println(otherT.i);
            System.out.println(otherT.h);
            System.out.println(otherT.d);
            System.out.println(otherT.k);
            ois.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

}

/**
 * 标记性接口,标记给编译器看
 * transient 修饰的成员变量在序列化的时候不予考虑
 * 
@author chengjj
 * 
 
*/
class T implements Serializable {
    int i = 10, h = 9;
    double d = 2.3;
    transient int k = 15;
     
}
posted @ 2012-11-05 19:14  Jet J.J.Cheng  阅读(203)  评论(0编辑  收藏  举报