gpt4 book ai didi

java - 在java中 `.properties`文件在编辑模式下没有显示任何内容

转载 作者:行者123 更新时间:2023-12-01 06:22:45 24 4
gpt4 key购买 nike

我使用 Properties 对象与 FileInputStream()FileOutputStream() 方法从 读取/写入属性java 中的.properties 文件。

它工作完美(我也能够读写)但是当我在编辑器中打开 .properties 文件时,它什么也没有显示。如果我能够读取和写入,那么为什么值没有显示在该文件中,这会令人困惑?

这是完整的代码

String username = uName.getText().trim();
String pass = uPass.getText().trim();

// Read properties file.
Properties pro = new Properties();
try {
pro.load(new FileInputStream("conf.properties"));
pro.setProperty("user", username);
pro.setProperty("pass", pass);
pro.store(new FileOutputStream("conf.properties"), null);

String user = pro.getProperty("user");
System.out.println(user);
System.out.println("successful .......");

} catch (IOException ex) {
ex.printStackTrace();
}

最佳答案

在关闭文件之前,文件不会刷新。

您必须更改代码以在文件输入流上包含对方法 .close() 的调用,并关闭输出流,因为方法存储调用 .flush() 但不关闭,所以您的文件系统不会向您显示更改:

String username = uName.getText().trim();
String pass = uPass.getText().trim();

// Read properties file.
Properties pro = new Properties();
try {

final FileInputStream fileInputStream = new FileInputStream("conf.properties");
pro.load(new FileInputStream("conf.properties"));
fileInputStream.close();
pro.setProperty("user", username);
pro.setProperty("pass", pass);
String user = pro.getProperty("user");
System.out.println(user);

final FileOutputStream fileOutputStream = new FileOutputStream("conf.properties");
pro.store(fileOutputStream, null);
fileOutputStream.close();
System.out.println("successful .......");

} catch (IOException ex) {
ex.printStackTrace();
}

您只需编写代码,以您想要存储的格式提取属性。这应该够了吧。 (这里是我直接编码的,如有错误请见谅)

编辑:我刚刚编写了代码,它有效:

public static void main(String[] args) {
String username = "bla";
String pass = "blabla";

// Read properties file.
Properties pro = new Properties();
try {
File file = new File("/tmp/conf.properties");
file.createNewFile();
final FileInputStream fileInputStream = new FileInputStream(file);
pro.load(fileInputStream);
fileInputStream.close();
pro.setProperty("user", username);
pro.setProperty("pass", pass);
String user = pro.getProperty("user");
System.out.println(user);

File toClose = new File("/tmp/conf.properties");
final FileOutputStream fileOutputStream = new FileOutputStream(toClose);
pro.store(fileOutputStream, null);
fileOutputStream.close();

System.out.println("successful .......");

} catch (IOException ex) {
ex.printStackTrace();
}
}

这是输出:

cat /tmp/conf.properties 
#Sun Nov 20 18:23:58 CET 2016
user=bla
pass=blabla

也许问题出在其他地方?尝试编译、打包它,然后在终端中运行它(java -jar ...)

关于java - 在java中 `.properties`文件在编辑模式下没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706776/

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