gpt4 book ai didi

java - 在 Java 中存储状态

转载 作者:搜寻专家 更新时间:2023-10-31 19:57:31 26 4
gpt4 key购买 nike

广泛讨论的问题。是否已经有任何库允许我用 Java 存储我的应用程序的执行状态?

例如,我有一个处理文件的应用程序,现在应用程序可能会在某个时候突然被迫关闭。我想存储有关所有文件已处理和未处理的信息,以及处理的哪个阶段正在进行的过程。

是否已经有抽象此功能的库,或者我必须从头开始实现它?

最佳答案

您正在寻找的似乎是可以使用 Java Serialization API 执行的序列化.

如果您决定使用 Apache Commons Lang 及其 SerializationUtils 等已知库,您可以编写更少的代码。本身构建在 Java 序列化 API 之上的类。

使用最新的,将您的应用程序状态序列化/反序列化到文件中只需几行即可完成。

您唯一需要做的就是创建一个保存您的应用程序状态的类,我们称它为... ApplicationState :-) 它可以看起来像这样:

class ApplicationState {

enum ProcessState {
READ_DONE,
PROCESSING_STARTED,
PROCESSING_ENDED,
ANOTHER_STATE;
}

private List<String> 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();
}

关于java - 在 Java 中存储状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9427155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com