📄 propertiestest.java
字号:
import java.io.*;import java.util.*;public class PropertiesTest { private static final String INPUT_PREFIX = "//INPUT-"; public static void main(String[] args) throws Exception { // Generate test input file into data1 BufferedReader r = new BufferedReader( new InputStreamReader( new FileInputStream( new File(args[0])))); ByteArrayOutputStream data1 = new ByteArrayOutputStream(); PrintWriter p = new PrintWriter( new OutputStreamWriter(data1, "ISO_8859-1")); for (String line; (line = r.readLine()) != null; ) { if (!line.startsWith(INPUT_PREFIX)) continue; p.println(line.substring(INPUT_PREFIX.length())); } p.flush(); p.close(); // Load expected properties Properties expect = new Properties(); for (int i = 0; i < EXPECT.length / 2; i++) expect.setProperty(EXPECT[i * 2], EXPECT[i * 2 + 1]); // Read in input into p1 Properties p1 = new Properties(); p1.load(new ByteArrayInputStream(data1.toByteArray())); // Verify contents of p1 verify(p1, expect); // Write out to data2 ByteArrayOutputStream data2 = new ByteArrayOutputStream(); p1.store(data2, new Date().toString()); // Read in again into p2 Properties p2 = new Properties(); p2.load(new ByteArrayInputStream(data2.toByteArray())); verify(p2, expect); // OK System.out.println("Done."); } private static void fail(String s) throws Exception { System.out.println("FAILURE: " + s); } private static void verify(Properties p, Properties q) throws Exception { if (p.size() != q.size()) fail("size " + p.size() + " != " + q.size()); for (Iterator i = p.keySet().iterator(); i.hasNext(); ) { String key = (String)i.next(); String val, val2; if ((val = p.getProperty(key)) == null) fail("key \"" + key + "\" missing?"); if ((val2 = q.getProperty(key)) == null) fail("key \"" + key + "\" unexpected"); if (val2 != null && !val2.equals(val)) fail("key \"" + key + "\": wrong value: " + "\"" + val + "\" != \"" + val2 + "\""); } } private static final String[] EXPECT = new String[] { "fooKey", "fooValue", "barKey", "override previous bar value", "noEqualsSign", "value", "spacesAroundEqualsSign", "this is the value", "useColon", "colon's value", "key=contains=equals", "value3", "key:contains:colons", "value4", "key contains spaces", "value5", "backslashes", "\r\n\t\\\"'", "lineContinuation", "this is a line continuation times two", "unicodeString", new String(new char[] { (char)0x1234, (char)0x5678 } ), "controlKey", new String(new char[] { (char)1, } ), "keyWithEmptyStringAsValue", "" };}// java args: PropertiesTest $1/* Expected Output:Done.*///INPUT-fooKey=fooValue//INPUT-controlKey:\u0001//INPUT-barKey=bar value//INPUT-barKey=override previous bar value//INPUT-noEqualsSign value//INPUT-spacesAroundEqualsSign = this is the value//INPUT-useColon : colon's value//INPUT-key\=contains\=equals=value3//INPUT-key\:contains\:colons=value4//INPUT-key\ contains\ spaces=value5//INPUT-backslashes = \r\n\t\\\"\'//INPUT-lineContinuation=this is a \//INPUT- line continuation \//INPUT- times two//INPUT-unicodeString=\u1234\u5678//INPUT-keyWithEmptyStringAsValue//INPUT-# a few blank lines follow//INPUT-//INPUT-//INPUT-# comment line//INPUT- ## another comment line//INPUT-! another comment line//INPUT- !! another comment line
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -