開始學習java序列化與反序列化,寫出了個初步代碼。
這是一個用戶類:
- import java.io.Serializable;
- public class User implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- public String name;
- public String sex;
- public int age;
- public User() {
- }
- public User(String name, String sex, int age) {
- this.name = name;
- this.sex = sex;
- this.age = age;
- }
- public String toString(){
- return "用戶名:"+name+"性別:"+sex+"年齡:"+age;
- }
- }
下面將對其進行序列化與反序列化操作:
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.Date;
- public class Test {
- public static void serialize(String filePath) {
- try {
- ObjectOutputStream out = new ObjectOutputStream(
- new FileOutputStream(filePath));
- out.writeObject("序列化時間爲:");
- out.writeObject(new Date());
- User user = new User("admin", "male", 10);
- out.writeObject(user);
- out.close();
- } catch (Exception e) {
- System.out.println(e.toString());
- }
- }
- public static void deserialize(String filePath){
- try {
- ObjectInputStream in=new ObjectInputStream(new FileInputStream(filePath));
- String time=(String)(in.readObject());
- Date date=(Date)(in.readObject());
- User user=(User)(in.readObject());
- System.out.println(time);
- System.out.println(date);
- System.out.println(user);
- } catch (Exception e) {
- System.out.println(e.toString());
- }
- }
- public static void main(String[]args){
- serialize("E:\\testserialize.txt");
- System.out.println("serialize completed!");
- deserialize("E:\\testserialize.txt");
- System.out.println("deserialize completed!");
- }
- }
運行之後,在控制檯輸出:
- serialize completed!
- 序列化時間爲:
- Wed Jun 13 23:31:54 CST 2012
- 用戶名:admin性別:male年齡:10
- deserialize completed!