- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的要求,我需要我的应用程序生成持久序列。通常,我会使用数据库,但不幸的是,我的数据库不支持任何序列。
在这种情况下,我想开发一个 API 来持久化,我从 Google 的 Guava 库中找到了这个类 - AtomicLongMap,这正是我所需要的。问题是,我需要我的值(value)观在重新启动后持续存在,有什么办法可以使其持续存在并在崩溃中幸存下来吗?
提前致谢,问候,
最佳答案
由于 java 应用程序在重新启动后将不会运行,因此您需要 JVM 之外的东西来存储数据。
通常这可以是数据库,但听起来这个选项不适合您。
另一种选择是将数据写入文件。当应用程序启动时,它将读取该文件并填充 AtomicLongMap。
以下是如何从文件读取状态和向文件写入状态的示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("unchecked")
public AtomicLongMap<String> readFromFile(File file) throws IOException, ClassNotFoundException {
try(FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);) {
Map<String,Long>readObj = (Map<String, Long>)ois.readObject();
return AtomicLongMap.create(readObj);
}
}
public void writeToFile(AtomicLongMap<String>map, File file) throws IOException {
HashMap<String, Long>newMap = new HashMap<>( map.asMap());
try(FileOutputStream fout = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fout);) {
oos.writeObject(newMap);
}
}
关于java - 如何持久化 Guava AtomicLongMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561620/
我有以下类(class): public class Storage { protected static final AtomicLongMap MAP; protected Sto
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 5 年前。 Improve this ques
我使用 guava AtomicLongMap 来计算文档中的短语数。 AtomicLongMap frequentPhrases = AtomicLongMap.create(); frequent
来自 AtomicLongMap 的文档: Note: If your values are always positive and less than 2^31, you may wish to u
我有 Spring MVC 应用程序,允许为某事预留时间段。 用户选择时间间隔,然后开始填写一些数据(姓名、地址等)。但某一时间段内的预订数量有上限。 因此,当用户选择时间间隔并开始填写数据时,其他用
我是一名优秀的程序员,十分优秀!