1 需要序列化的类要实现Serializable接口
代码示例:
Computer 类:
package com.zjq.serializer;
import java.io.Serializable;
public class Computer implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String cpu;
private int cpuNum;
private String keyBoard;
public String getCpu() {
return cpu;
}
public void setCpu(String cpu) {
this.cpu = cpu;
}
public int getCpuNum() {
return cpuNum;
}
public void setCpuNum(int cpuNum) {
this.cpuNum = cpuNum;
}
public String getKeyBoard() {
return keyBoard;
}
public void setKeyBoard(String keyBoard) {
this.keyBoard = keyBoard;
}
}
测试类:
package com.zjq.serializer;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class SerializerTest {
public static void main(String[] args) {
SerializerTest sz = new SerializerTest();
try {
try {
sz.m();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void m() throws IOException, ClassNotFoundException{
File f = new File("D://computer.txt");
if(!f.exists()){
f.createNewFile();
}
FileOutputStream fos = new FileOutputStream(f);
ObjectOutputStream oop = new ObjectOutputStream(fos);
Computer com = new Computer();
com.setCpu("AMD");
com.setCpuNum(8);
com.setKeyBoard("LeiBO");
oop.writeObject(com);
fos.flush();
oop.close();
fos.close();
FileInputStream fis = new FileInputStream(f);
ObjectInputStream ois = new ObjectInputStream(fis);
Computer newCom = (Computer) ois.readObject();
System.out.println(newCom.getCpu());
System.out.println(newCom.getCpuNum());
System.out.println(newCom.getKeyBoard());
}
}
运行结果:
AMD
8
LeiBO