序列化集合

一點都不萌發表於2020-10-04
package ObjectStream3;

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.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/*
 * 練習:序列化集合
 * 當我們想在檔案中儲存多個物件的時候
 * 可以把多個物件儲存到一個集合中
 * 對集合進行序列化和反序列化
 * 分析:
 * 1.定義一個Person物件的ArrayList集合,並儲存物件
 * 2.建立序列化流ObjectOutputStream物件
 * 3.使用序列化流中的writeObject(),對集合進行序列化
 * 4.建立反序列化objectInputStream物件,使用readObject讀取集合
 * 5.把object型別的集合轉換為Arraylist型別
 * 6.遍歷集合,釋放資源
 * */
public class ObjectStreamDemo3 {

	public static void main(String[] args) throws IOException, ClassNotFoundException {
		List<Person> list = new ArrayList<>();
		list.add(new Person("張丹",19));
		list.add(new Person("李四",33));
		list.add(new Person("王五",48));
		
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("e:\\\\javaStudy\\person3.txt"));
		oos.writeObject(list);
		
		//反序列化
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("e:\\\\javaStudy\\person3.txt"));
		ArrayList<Person> ar = (ArrayList<Person>)ois.readObject();
		Iterator<Person> it = ar.iterator();
		if(it.hasNext()) {
			System.out.println(it.next());
		}
		
		oos.close();
		ois.close();
	}
}

相關文章