//java.util.prefs.Preferences exportSubtree()
//It is storing all the of the nodes with key and values from the userRoot
//As per the spec. it is suppose to store key and values from the node where //this method is invoked.
//In the following program:
//N5.exportSubtree(fos);
//is invoked and expected to store key and values for N5 node and if any descendants.
//But it is storing key and values from user root.
import java.util.prefs.*;
import java.util.*;
import java.io.*;
public class ExportSubTree {
public static void main(String[] args) {
try{
Preferences userRoot = Preferences.userRoot();
Preferences N1 = userRoot.node("N1");
N1.removeNode();
N1 = userRoot.node("N1");
N1.put("k1","v1");
Preferences N2 = N1.node("N2");
N2.put("k2","v2");
Preferences N3 = N2.node("N3");
N3.put("k3","v3");
Preferences N4 = N2.node("N4");
N4.put("k4","v4");
Preferences N5 = N3.node("N5");
N5.put("k5","v5");
userRoot.flush();
File systemFile = new File("user01.pfs");
FileOutputStream fos = new FileOutputStream(systemFile);
//exportSubtree
N5.exportSubtree(fos);
fos.close();
System.out.println("user01.pfs output");
System.out.println();
RandomAccessFile raf = new RandomAccessFile("user01.pfs","r");
String line = null;
while ( (line = raf.readLine()) !=null) {
System.out.println(line);
}
} catch(Exception e) {
System.out.println("exception thrown " + e);
}
}
}
///////////////////////////////////output////////////////////////////////////////
H:\merlinTest\preferences\exportSubTree>java ExportSubTree
user01.pfs output
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>
<preferences>
<root type="user">
<node name="N1">
<node name="N2">
<node name="N3">
<node name="N5">
<node name="N1">
<map>
<entry key="k1" value="v1" />
</map>
<node name="N2">
<map>
<entry key="k2" value="v2" />
</map>
<node name="N4">
<map>
<entry key="k4" value="v4" />
</map>
</node>
<node name="N3">
<map>
<entry key="k3" value="v3" />
</map>
<node name="N5">
<map>
<entry key="k5" value="v5" />
</map>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
</preferences>
//It is storing all the of the nodes with key and values from the userRoot
//As per the spec. it is suppose to store key and values from the node where //this method is invoked.
//In the following program:
//N5.exportSubtree(fos);
//is invoked and expected to store key and values for N5 node and if any descendants.
//But it is storing key and values from user root.
import java.util.prefs.*;
import java.util.*;
import java.io.*;
public class ExportSubTree {
public static void main(String[] args) {
try{
Preferences userRoot = Preferences.userRoot();
Preferences N1 = userRoot.node("N1");
N1.removeNode();
N1 = userRoot.node("N1");
N1.put("k1","v1");
Preferences N2 = N1.node("N2");
N2.put("k2","v2");
Preferences N3 = N2.node("N3");
N3.put("k3","v3");
Preferences N4 = N2.node("N4");
N4.put("k4","v4");
Preferences N5 = N3.node("N5");
N5.put("k5","v5");
userRoot.flush();
File systemFile = new File("user01.pfs");
FileOutputStream fos = new FileOutputStream(systemFile);
//exportSubtree
N5.exportSubtree(fos);
fos.close();
System.out.println("user01.pfs output");
System.out.println();
RandomAccessFile raf = new RandomAccessFile("user01.pfs","r");
String line = null;
while ( (line = raf.readLine()) !=null) {
System.out.println(line);
}
} catch(Exception e) {
System.out.println("exception thrown " + e);
}
}
}
///////////////////////////////////output////////////////////////////////////////
H:\merlinTest\preferences\exportSubTree>java ExportSubTree
user01.pfs output
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>
<preferences>
<root type="user">
<node name="N1">
<node name="N2">
<node name="N3">
<node name="N5">
<node name="N1">
<map>
<entry key="k1" value="v1" />
</map>
<node name="N2">
<map>
<entry key="k2" value="v2" />
</map>
<node name="N4">
<map>
<entry key="k4" value="v4" />
</map>
</node>
<node name="N3">
<map>
<entry key="k3" value="v3" />
</map>
<node name="N5">
<map>
<entry key="k5" value="v5" />
</map>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</root>
</preferences>
- duplicates
-
JDK-4387136 preintegration testing:javax.prefs.exportNode()
-
- Closed
-