如何将一个java对象序列化到文件里

1.准备要序列化的类User

(这个类必须实现Serializable接口,该接口只起到一个标记作用,没有任何抽象方法)

package cn.qdm.ceshi;

import java.io.Serializable;

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

}

2. 测试代码

package cn.qdm.ceshi;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Ceshi {

	public static void main(String[] args)  {
		ObjectOutputStream objectOutputStream = null;
		try {
			objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("D://obj")));
			objectOutputStream.writeObject(new User("张三", 18));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				objectOutputStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
      try {
		ObjectInputStream objectInputStream = new	ObjectInputStream(new FileInputStream(new File("D://obj")));
	      try {
			User user = (User) objectInputStream.readObject();
			System.out.println(user);
			objectInputStream.close();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} 

	}
}

posted @ 2019-12-04 22:41  若水一剑  阅读(2473)  评论(0编辑  收藏  举报