1 Serializable 使用示例
import com.google.common.collect.Lists;
import java.io.*;
import java.util.List;
import java.util.logging.Logger;
/**
* 不同的序列化code 会导致反序列话异常
*/
public class SerialUUIDTest implements Serializable {
private static final Logger log = Logger.getLogger(SerialUUIDTest.class.getName());
private static final long serialVersionUID = -7599705434260488493L;
//private static final long serialVersionUID = -759907434260488493L;
private Integer age;
private Integer age2;
private String name;
private List<String> likeSports;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getLikeSports() {
return likeSports;
}
public void setLikeSports(List<String> likeSports) {
this.likeSports = likeSports;
}
@Override
public String toString() {
return "SerialUUIDTest{" +
"age=" + age +
", serialVersionUID=" + serialVersionUID +
", age2=" + age2 +
", name='" + name + '\'' +
", likeSports=" + likeSports +
'}';
}
public static void main(String[] args) {
SerialUUIDTest test = new SerialUUIDTest();
test.setAge(23);
//test.setAge1(233);
test.setName("zw");
test.setLikeSports(Lists.newArrayList("A","B","c"));
//serializeToDisk("/Users/tz/seriObjec.bin",test);
SerialUUIDTest test1 = deserializeFromDisk("/Users/tz/seriObjec.bin");
System.out.println(test1);
}
public static boolean serializeToDisk(String filename, SerialUUIDTest employees) {
final String METHOD_NAME = "serializeToDisk(String filename, List<Employee> employees)";
boolean ret = false;
File file = new File(filename);
try (ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file))) {
log.info("Writing " + employees+ " employees to disk (using Serializable)...");
outputStream.writeObject(employees);
ret = true;
log.info("Done.");
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
@SuppressWarnings("unchecked")
public static SerialUUIDTest deserializeFromDisk(String filename) {
final String METHOD_NAME = "deserializeFromDisk(String filename)";
File file = new File(filename);
int numberOfEmployees = 0;
try (ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(file))) {
SerialUUIDTest ret = (SerialUUIDTest)inputStream.readObject();
log.info("Deserialized List says it contains " + ret +
" objects...");
log.info("Read " + numberOfEmployees + " employees from disk.");
return ret;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
2 结果说明