使用FileOutputStream和ObjectOutputStream向文本文件中寫多個對象的信息(序列化)

一、創建學生類,實現Serializable接口

import java.io.Serializable;

public class Student implements Serializable{
   /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
String name;
   int age;
   String sex;
   public Student(String name, int age, String sex){
	   this.name=name;
	   this.age=age;
	   this.sex=sex;
   }
}

二、使用FileOutputStream和ObjectOutputStream向文本文件中寫多個對象的信息(序列化)

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

public class ObjectOutputStreamDemo {

	/**
	 * 使用FileOutputStream和ObjectOutputStream向文本文件中寫多個對象的信息(序列化)
	 * @param args
	 */
	public static void main(String[] args) {
		FileOutputStream file=null;
		ObjectOutputStream obj=null;
		try {
			file=new FileOutputStream("d:/hello1.txt");      //1.創建FileOutputStream文件輸出流
			 try {
				    Student stu=new Student("娜娜",30,"女");       //2.創建要保存的對象
					Student stu1=new Student("慧慧",20,"女");
					ArrayList<Student> list=new ArrayList<Student>();//3.創建集合,保存對象的信息
					list.add(stu);
					list.add(stu1);
				obj=new ObjectOutputStream(file);                //4.創建ObjectOutputStream文件輸出流		
				obj.writeObject(list);                           //5.對象序列化,把信息寫進文件中
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{                                            //6.關閉流
				if(obj!=null){
					try {
						obj.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{                                              //7.關閉流
			if(file!=null){
				try {
					file.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

}


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