龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

使用Properties从文件获取属性

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
import Java.util.*; import java.io.*; /** * refer tohttp://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index_eng.sHtml /br * or http://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index.shtml */ public class LoadProperties {

  import Java.util.*;
  import java.io.*;

  /**
   * refer to http://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index_eng.sHtml  </br>
   * or http://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index.shtml
   */
  public class LoadProperties
  {
   public static void main(String[] args) throws Exception {
    Properties prop = new Properties();

    //load properties from configuration file
    System.out.println("From properties file:");
    FileInputStream fis = new FileInputStream("sample.properties");
    prop.load(fis);
       prop.list(System.out);
    System.out.println(" The foo property: " + prop.getProperty("foo"));
    
    //load properties from XML property file(Tiger new method)
    System.out.println("From xml file:");
    fis =new FileInputStream("sampleprops.xml");
    /**
     *<pre>The XML document must have the following DOCTYPE declaration:
     *<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
     *the dtd file :
     *<?xml version="1.0" encoding="UTF-8"?>
     *<!-- DTD for properties -->
     *<!ELEMENT properties ( comment?, entry* ) >
     *<!ATTLIST properties version CDATA #FIXED "1.0">
     *<!ELEMENT comment (#PCDATA) >
     *<!ELEMENT entry (#PCDATA) >
     *<!ATTLIST entry key CDATA #REQUIRED>
           *</pre>
     */
    prop.loadFromXML(fis);  
    prop.list(System.out);
    System.out.println(" The foo property: " + prop.getProperty("foo"));
    
    //生成xml文件
    System.out.println("prodUCe a xml file");
    prop = new Properties();
    prop.setProperty("one-two", "buckle my shoe");
    prop.setProperty("three-four", "shut the door");
       prop.setProperty("five-six", "pick up sticks");
    prop.setProperty("seven-eight", "lay them straight");
       prop.setProperty("nine-ten", "a big, fat hen");
    FileOutputStream fos = new FileOutputStream("rhyme.xml");
    /*
     *default encoding is UTF-8,
     * if you need specify encoding,
     * use storeToXML(OutputStream os,String comment,String encoding) instead
     */
    prop.storeToXML(fos, "Rhyme");//prop.storeToXML(fos, "Rhyme","GBK");
       fos.close();//The specified stream remains open after storeToXML() returns,so must close obviously
    /**
     *生成的xml如下(DTD如上所述):
     *<?xml version="1.0" encoding="UTF-8"?>
     *<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
     *<properties>
     *<comment>Rhyme</comment>
     *<entry key="seven-eight">lay them straight</entry>
     *<entry key="five-six">pick up sticks</entry>
     *<entry key="nine-ten">a big, fat hen</entry>
     *<entry key="three-four">shut the door</entry>
     *<entry key="one-two">buckle my shoe</entry>
     *</properties>
     */
   }
  }


  
精彩图集

赞助商链接