Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Preferences类(java.util.prefs)正确存储/调用,但XML代码不';不能反映所有的行动_Java_Xcode_Plist - Fatal编程技术网

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文件中,如上图所示。任何人