使用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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章