test/java/util/Properties/LoadAndStoreXML.java

Print this page




 119                 super.close();
 120             } finally {
 121                 closed = true;
 122             }
 123         }
 124     }
 125 
 126     /**
 127      * Sanity test that properties saved with Properties#storeToXML can be
 128      * read with Properties#loadFromXML.
 129      */
 130     static void testLoadAndStore(String encoding, boolean appendBOM) throws IOException {
 131         System.out.println("testLoadAndStore, encoding=" + encoding);
 132 
 133         Properties props = new Properties();
 134         props.put("k0", "\u6C34");
 135         props.put("k1", "foo");
 136         props.put("k2", "bar");
 137         props.put("k3", "\u0020\u0391\u0392\u0393\u0394\u0395\u0396\u0397");
 138         props.put("k4", "\u7532\u9aa8\u6587");
 139         props.put("k5", "<java.home>/lib/jaxp.properties");
 140 
 141         TestOutputStream out = new TestOutputStream();
 142         props.storeToXML(out, null, encoding);
 143         if (!out.isOpen())
 144             throw new RuntimeException("OutputStream closed by storeToXML");
 145 
 146         Properties p = new Properties();
 147         TestInputStream in;
 148         if (appendBOM) {
 149             byte[] byteOrderMark = bomChar.getBytes(Charset.forName(encoding));
 150             byte[] outArray = out.toByteArray();
 151             byte[] inputArray = new byte[byteOrderMark.length + outArray.length];
 152             System.arraycopy(byteOrderMark, 0, inputArray, 0, byteOrderMark.length);
 153             System.arraycopy(outArray, 0, inputArray, byteOrderMark.length, outArray.length);
 154             in = new TestInputStream(inputArray);
 155         } else {
 156             in = new TestInputStream(out.toByteArray());
 157         }
 158         p.loadFromXML(in);
 159         if (in.isOpen())




 119                 super.close();
 120             } finally {
 121                 closed = true;
 122             }
 123         }
 124     }
 125 
 126     /**
 127      * Sanity test that properties saved with Properties#storeToXML can be
 128      * read with Properties#loadFromXML.
 129      */
 130     static void testLoadAndStore(String encoding, boolean appendBOM) throws IOException {
 131         System.out.println("testLoadAndStore, encoding=" + encoding);
 132 
 133         Properties props = new Properties();
 134         props.put("k0", "\u6C34");
 135         props.put("k1", "foo");
 136         props.put("k2", "bar");
 137         props.put("k3", "\u0020\u0391\u0392\u0393\u0394\u0395\u0396\u0397");
 138         props.put("k4", "\u7532\u9aa8\u6587");
 139         props.put("k5", "<java.home>/conf/jaxp.properties");
 140 
 141         TestOutputStream out = new TestOutputStream();
 142         props.storeToXML(out, null, encoding);
 143         if (!out.isOpen())
 144             throw new RuntimeException("OutputStream closed by storeToXML");
 145 
 146         Properties p = new Properties();
 147         TestInputStream in;
 148         if (appendBOM) {
 149             byte[] byteOrderMark = bomChar.getBytes(Charset.forName(encoding));
 150             byte[] outArray = out.toByteArray();
 151             byte[] inputArray = new byte[byteOrderMark.length + outArray.length];
 152             System.arraycopy(byteOrderMark, 0, inputArray, 0, byteOrderMark.length);
 153             System.arraycopy(outArray, 0, inputArray, byteOrderMark.length, outArray.length);
 154             in = new TestInputStream(inputArray);
 155         } else {
 156             in = new TestInputStream(out.toByteArray());
 157         }
 158         p.loadFromXML(in);
 159         if (in.isOpen())