gpt4 book ai didi

java - 在 Java 中存储数据的最佳方式(如 pickle)

转载 作者:行者123 更新时间:2023-12-02 08:56:19 24 4
gpt4 key购买 nike

基本上,我只想将两个整数保存到一个文件中,以便下次程序启动时可以重用它们。我想像 python 中的 pickle 那样做,因为只将其写入 txt 文件很麻烦。我读过一些文章和其他问题,他们说我应该使用 Java 序列化或 XML 或 JSON,但我不确定这对我来说是否正确。我想用最简单的方法。预先非常感谢您尝试解决我的问题! <3

最佳答案

您可以使用序列化、XML 或 JSON(通常带有附加库)。在文件中存储配置数据的一种简单方法是使用 JRE 支持的 Java 属性文件,无需任何额外的依赖项。属性文件是文本文件,具有简单的 key=value 语法,请参见下文。要将两个值写入属性文件,您可以执行以下操作

  String prop1 = "foo";
String prop2 = "bar";

try (OutputStream output = new FileOutputStream("config.properties")) {

Properties prop = new Properties();

// set the properties value
prop.setProperty("prop1", prop1);
prop.setProperty("prop2", prop2);

// save properties to project root folder
prop.store(output, "my app's config file");
} catch (IOException io) {
io.printStackTrace();
// TODO: improve error handling
}

这应该给你类似的东西

#my app's config file
#Sat Feb 29 12:29:27 CET 2020
prop2=bar
prop1=foo

并加载它:

try (InputStream input = new FileInputStream("config.properties")) {

Properties prop = new Properties();

// load a properties file
prop.load(input);

// get the property value and print it out
String prop1 = prop.getProperty("prop1");
String prop2 = prop.getProperty("prop2");

System.out.println("prop1 = " + prop1);
System.out.println("prop2 = " + prop2);

} catch (IOException ex) {
ex.printStackTrace();
// TODO: improve error handling
}

对于整数值,您需要进行一些类型转换,例如前两行是

String prop1 = Integer.toString(23);
String prop2 = Integer.toString(42);

然后读取属性就变成了

int prop1 = Integer.parseInt(prop.getProperty("prop1"));
int prop2 = Integer.parseInt(prop.getProperty("prop2"));

当属性数量增加或频繁更改时,此解决方案无法很好地扩展。有关更通用的过程,请参阅此帖子:Get int, float, boolean and string from Properties

关于java - 在 Java 中存储数据的最佳方式(如 pickle),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60464601/

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