用的是上文list和map的Classes类,把Classes实例化的对象序列化,写入名为"FileTest"的文件。这个文件如果不存在,会自动创建。下面是代码演示。
package com.app.listmap;
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 FileInputOutput {
//序列化方法
public void Write(Classes c){
try {
FileOutputStream FileOut = new FileOutputStream("FileTest");
ObjectOutputStream OOS = new ObjectOutputStream(FileOut);
OOS.writeObject(c);
OOS.close();
FileOut.close();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
//反序列化方法
public Classes Read(){
Classes c = null;
FileInputStream FileIn;
try {
FileIn = new FileInputStream("FileTest");
ObjectInputStream OIS = new ObjectInputStream(FileIn);
c=(Classes) OIS.readObject();
OIS.close();
FileIn.close();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return c;
}
public static void main(String[] args) {
// 创建Classes对象并序列化存入FileTest文件中
Classes c = new Classes("大狗熊");
new FileInputOutput().Write(c);
// 操作完成后讲上面的两句注释,取消下面这两句注释,运行,即可得到反序列化,并打印其中的内容
// Classes c1= new FileInputOutput().Read();
// System.out.println(c1.Members);
}
}