Preferences类(java.util.prefs)正确存储/调用,但XML代码不';不能反映所有的行动
当我运行下面的Preferences类(java.util.prefs)正确存储/调用,但XML代码不';不能反映所有的行动,java,xcode,plist,Java,Xcode,Plist,当我运行下面的ClassA.java代码时,prefs.get(“key2”),调用将按预期返回存储的信息。但是当我打开实际文件(com.apple.java.util.prefs)时,它不会显示level2节点的key2和value2(请参见java代码下面的XML内容) 更奇怪的是,如果我删除.put(“key2”,“value2”)方法并再次运行它,它仍然会返回正确的value2。所以它显然是被存储的,但是为什么没有任何plist编辑器来获取它呢?我使用了XCode和PlistEdit-P
ClassA.java
代码时,prefs.get(“key2”),调用将按预期返回存储的信息。但是当我打开实际文件(com.apple.java.util.prefs
)时,它不会显示level2节点的key2和value2(请参见java代码下面的XML内容)
更奇怪的是,如果我删除.put(“key2”,“value2”)
方法并再次运行它,它仍然会返回正确的value2
。所以它显然是被存储的,但是为什么没有任何plist编辑器来获取它呢?我使用了XCode
和PlistEdit-Pro
ClassA.java
public class ClassA {
public static void main(String[] args) {
new ClassA();
}
public ClassA() {
Preferences prefs = Preferences.userRoot().node("Parent/level1");
prefs.put("key1", "value1");
String value1 = _prefs.get("key1", "");
System.out.println(value1);
prefs = Preferences.userRoot().node("Parent/level1/level2");
prefs.put("key2", "value2");
String value2 = _prefs.get("key2", "");
System.out.println(value2);
}
}
输出
value1
value2
com.apple.java.util.prefs.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>/</key>
<dict>
<key>Parent/</key>
<dict>
<key>level1/</key>
<dict>
<key>key1</key>
<string>value1</string>
<key>level2/</key>
<dict/>
</dict>
</dict>
</dict>
</dict>
</plist>
/
母公司/
一级/
关键1
价值1
二级/
多亏了你的问题XD,我才发现首选项
类的存在,但你是否尝试使用该方法?Antiphon0x我很高兴提供:-)是的,尽管我不确定我的问题是否被理解。说清楚了,一切都很好。我可以添加到根目录下的任何级别并检索。问题是,任何写在根目录下第二个子级别下面的内容都不会显示在Xcode或原始XML文件中,如上图所示。有人吗?多亏了你的问题XD,我才发现了首选项
类的存在,但是你尝试过使用这个方法吗?Antiphon0x我很高兴能提供:-)是的,尽管我不确定我的问题是否被理解。说清楚了,一切都很好。我可以添加到根目录下的任何级别并检索。问题是,任何写在根目录下第二个子级别下面的内容都不会显示在Xcode或原始XML文件中,如上图所示。任何人