package Serialize;

import java.io.*;

/**

  • 序列化与反序列化
  • 注意:对象的序列化与反序列化使用的类要严格一致,包名,类名,类机构等等所有都要一致
    */

public class Test {
public static void main(String[] args) {
try {
// Test.testSerialize(“F:\Java_project_new\src\Serialize\tt.txt”);
Test.testDeserialize(“F:\Java_project_new\src\Serialize\tt.txt”);
} catch (Exception e) {
e.printStackTrace();
}

}

/**
 * 对象的序列化
 */
//F:\Java_project_new\src\Serialize\tt.txt
public static void testSerialize(String output) throws Exception {
    //定义对象的输出流,把对象的序列化之后的流放到指定的文件中
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(output));
    Serialize ser = new Serialize();
    ser.name="tom";
    ser.age=18;
    out.writeObject(ser);  //将对象写入到内存
    out.flush(); //将对象刷到硬盘
    out.close();
}

/**
 * 对象的反序列化
 */
public static void testDeserialize(String Input) throws Exception{
    //创建对象输入流 从指定的文件中把对象序列化后的流读取出来
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(Input));

// Object obj = in.readObject();
// Serialize ser = (Serialize)obj;
Serialize ser = (Serialize) in.readObject();
System.out.println(ser.name);
System.out.println(ser.age);
in.close();
}

}