Java 序列化与反序列化


import org.junit.Test;
import java.io.*;

public class SerializableTest implements Serializable {


	class Student implements Serializable {
		private String name;
		private String gender;
		private String address;

		public String getName() {
			return name;
		}

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

		public String getGender() {
			return gender;
		}

		public void setGender(String gender) {
			this.gender = gender;
		}

		public String getAddress() {
			return address;
		}

		public void setAddress(String address) {
			this.address = address;
		}

		@Override
		public String toString() {
			return "Student{" +
					"name='" + name + '\'' +
					", gender='" + gender + '\'' +
					", address='" + address + '\'' +
					'}';
		}
	}

	/**
	 * 序列化
	 */
	@Test
	public void serializable() {
		Student student = new Student();
		student.setName("Simon");
		student.setGender("male");
		student.setAddress("WuHan");

		try {
			ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("k:/object.dat"));
			outputStream.writeObject(student);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 反序列化
	 */
	@Test
	public void deserialization() {
		try {
			ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("k:/object.dat"));
			Object o = objectInputStream.readObject();
			System.out.println(o.toString());
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

}

posted @ 2020-02-19 03:22  Haidnor  阅读(98)  评论(0编辑  收藏  举报