XMLで記述したプロパティ(その2)
戻る
::::::::::::::
LoadTest2.java
::::::::::::::
import java.io.*;
import java.util.*;
/**
$Id: prop2.html,v 1.1 2009/06/22 16:12:20 kishi Exp kishi $
*/
public class LoadTest2 {
public LoadTest2( String filename ) {
Properties prop = new Properties();
try {
InputStream stream = new FileInputStream( filename );
prop.loadFromXML( stream );
stream.close();
// 一覧を出力
prop.list( System.out );
System.out.println( prop.getProperty( "最初のURL" ) );
System.out.println( prop.getProperty( "正規表現などを含むプロパティ" ) );
} catch ( IOException ex ) {
ex.printStackTrace();
}
}
public static void main( String[] args ) {
new LoadTest2( args[ 0 ] );
}
}
/*
$ javap java.util.Properties
Compiled from "Properties.java"
public class java.util.Properties extends java.util.Hashtable{
protected java.util.Properties defaults;
public java.util.Properties();
public java.util.Properties(java.util.Properties);
public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
public synchronized void load(java.io.InputStream) throws java.io.IOException;
public synchronized void save(java.io.OutputStream, java.lang.String);
public synchronized void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
public synchronized void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
public synchronized void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
public java.lang.String getProperty(java.lang.String);
public java.lang.String getProperty(java.lang.String, java.lang.String);
public java.util.Enumeration propertyNames();
public void list(java.io.PrintStream);
public void list(java.io.PrintWriter);
static {};
}
*/
::::::::::::::
SaveTest2.java
::::::::::::::
import java.io.*;
import java.util.*;
/**
$Id: prop2.html,v 1.1 2009/06/22 16:12:20 kishi Exp kishi $
@author KISHI Yasuhiro
*/
public class SaveTest2 {
private static final String PROP = "my.properties";
public SaveTest2() {
Properties prop = new Properties();
prop.setProperty( "壱", "one" );
prop.setProperty( "弐", "two" );
prop.setProperty( "参", "three" );
prop.setProperty( "四", "four" );
// ちゃんとエスケープされるか確認する
prop.setProperty( "最初のURL", "http://www.google.info/test?aaa=bbb&ccc=ddd" );
prop.setProperty( "正規表現などを含むプロパティ", "<th colspan=2>アピールポイント</th>(.*?)</table>\\s*<!-- --- 募集要項 --- -->" );
try {
OutputStream stream = new FileOutputStream( PROP );
prop.storeToXML( stream, "XMLで記述されたプロパティファイルですねん!", "Shift_JIS" );
stream.close();
} catch ( IOException exception ) {
exception.printStackTrace();
}
}
public static void main( String[] args ) {
new SaveTest2();
}
}
■実行結果
$ java SaveTest2
$ cat my.properties
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>XMLで記述されたプロパティファイルですねん!</comment>
<entry key="壱">one</entry>
<entry key="最初のURL">http://www.google.info/test?aaa=bbb&ccc=ddd</entry>
<entry key="四">four</entry>
<entry key="弐">two</entry>
<entry key="参">three</entry>
<entry key="正規表現などを含むプロパティ"><th colspan=2>アピールポイント</th>(.*?)</table>\s*<!-- --- 募集要項 --- --></entry>
</properties>
$ java LoadTest2 my.properties
-- listing properties --
壱=one
最初のURL=http://www.google.info/test?aaa=bbb&c...
四=four
弐=two
参=three
正規表現などを含むプロパティ=<th colspan=2>アピールポイント</th>(.*?)</tab...
http://www.google.info/test?aaa=bbb&ccc=ddd
<th colspan=2>アピールポイント</th>(.*?)</table>\s*<!-- --- 募集要項 --- -->
戻る