一、创建学生类,实现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();
}
}
}
}
}