小编典典
如果决定使用诸如Apache Commons
Lang之类的已知库以及它的SerializationUtils类(其本身基于Java
Serialization API构建),则可以编写更少的代码。
使用最新的,将您的应用程序状态序列化/反序列化为文件的过程只需几行。
您唯一要做的就是创建一个保存应用程序状态的类,让我们称之为… ApplicationState:-)它看起来可能像这样:
class ApplicationState {
enum ProcessState {
READ_DONE,
PROCESSING_STARTED,
PROCESSING_ENDED,
ANOTHER_STATE;
}
private List filesDone, filesToDo;
private String currentlyProcessingFile;
private ProcessState currentProcessState;
}
使用这种结构,并使用SerializationUtils,可以通过以下方式完成序列化:
try {
ApplicationState state = new ApplicationState();
...
// File to serialize object to
String fileName = "applicationState.ser";
// New file output stream for the file
FileOutputStream fos = new FileOutputStream(fileName);
// Serialize String
SerializationUtils.serialize(state, fos);
fos.close();
// Open FileInputStream to the file
FileInputStream fis = new FileInputStream(fileName);
// Deserialize and cast into String
String ser = (String) SerializationUtils.deserialize(fis);
System.out.println(ser);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
2020-11-16