Java.io.序列化和反序列化

//对象序列化
	//所谓对象序列化,即把一个对象,变为二进制
	//对象所在的类,须实现Serializable接口
	public static void main(String[] args) throws Exception {
		ObjectOutputStream objectOutput=
				new ObjectOutputStream(new FileOutputStream(new File("d:"+File.separator+"t2.txt")));
		objectOutput.writeObject(new Person("Lee", 11));
	}


//反序列化
	public static void main(String[] args) throws Exception {
		ObjectInputStream objectInputStream = 
				new ObjectInputStream(new FileInputStream(new File("d:"+File.separator+"t2.txt")));
		
		Object object = objectInputStream.readObject();//读取对象
		objectInputStream.close();
		System.out.println(object); 


//序列化,需要实现Serializable接口
class Person3 implements Serializable {
	private int age;
	private String name;

	@Override
	public String toString() {
		return "Person3 [age=" + age + ", name=" + name + "]";
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Person3(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}

}

public class T19 {
	//序列化一组对象
	public static void main(String[] args) throws Exception {
		Person3[] pers = { new Person3(11, "Lee"), new Person3(22, "qwere"), new Person3(55, "xiao"), };

		ser(pers);
		Object[] objects = deser();
		for (int i = 0; i < objects.length; i++) {
			Person3 p = (Person3) objects[i];
			System.out.println(p);
		}
	}

	//序列化
	public static void ser(Object[] obj) throws Exception {
		ObjectOutputStream objectOutputStream = new ObjectOutputStream(
				new FileOutputStream(new File("d:" + File.separator + "ser.txt")));

		objectOutputStream.writeObject(obj);
		objectOutputStream.close();//关闭输出
	}

	//反序列化
	public static Object[] deser() throws Exception {
		ObjectInputStream objectInputStream = new ObjectInputStream(
				new FileInputStream(new File("d:" + File.separator + "ser.txt")));

		Object[] obj = (Object[]) objectInputStream.readObject();//读取对象数组
		objectInputStream.close();
		return obj;
	}
}

猜你喜欢

转载自8850702.iteye.com/blog/2282147