IO流(17)--對象操作流

1.對象輸入流ObjectInputStream
對象輸入流是反序列化的,往出讀數據

package com.fenqing;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;

import com.fenqing.source.person;

public class demo_objectInputStream {
    /**
     * @throws Exception 
     * @throws FileNotFoundException 
     */
    public static void main(String[] args) throws FileNotFoundException, Exception, ClassCastException{
//      method1();
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("e.txt"));
        ArrayList<person> list=(ArrayList<person>) ois.readObject();

        for (person person : list) {
            System.out.println(person);
        }
        ois.close();
    }

    public static void method1() throws IOException, FileNotFoundException, ClassNotFoundException {
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("e.txt"));

        person p1=(person) ois.readObject();
        person p2=(person) ois.readObject();

        System.out.println(p1);
        System.out.println(p2);
        ois.close();
    }
}

2.對象輸出流ObjectOutputStream

package com.fenqing;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

import com.fenqing.source.person;

public class demo_objectOutputStream {
    /**
     *對象操作流:
     *對流可以將一個對象寫出,或者讀取一個對象到程序中,也就是執行了序列化和反序列化的操作。
     * @throws IOException 
     * @throws FileNotFoundException 
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
//      method1();
        person p1=new person("zhang",23);
        person p2=new person("li",24);
        person p3=new person("wang",25);

        ArrayList<person> list =new ArrayList<person>();
        list.add(p1);
        list.add(p2);
        list.add(p3);

        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e.txt"));
        oos.writeObject(list);
        oos.close();

    }

    public static void method1() throws IOException, FileNotFoundException {
        person p1=new person("zhang",23);
        person p2=new person("li",24);

        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e.txt"));
        oos.writeObject(p1);
        oos.writeObject(p2);
        oos.close();
    }

}

3.上述代碼中引用到的person類:

package com.fenqing.source;

import java.io.Serializable;

public class person implements Serializable {
    private String name;
    private int age;
    public person() {
        super();
        // TODO Auto-generated constructor stub
    }
    public person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "person [name=" + name + ", age=" + age + "]";
    }

}
發佈了77 篇原創文章 · 獲贊 17 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章