java中Properties類的操做

    Properties類繼承自hashTable而且實現了Map接口,使用key-value方式存儲屬性值,主要用於讀取java的配置文件,實現程序和運行環境之間的去耦做用。java

   繼承關係以下:函數

  • java.lang.Object
    • java.util.Dictionary<K,V>
      • java.util.Hashtable<Object,Object>
        • java.util.Properties

1、讀取方式有不少,參考Java讀取Properties文件的六種方法 .net

使用J2SE API讀取Properties文件的六種方法

1。使用java.util.Properties類的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);

2。使用java.util.ResourceBundle類的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

3。使用java.util.PropertyResourceBundle類的構造函數
示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);

4。使用class變量的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

5。使用class.getClassLoader()所獲得的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

6。使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);

補充

Servlet中能夠使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);blog

在加載配置文件時,經常採用第5中方式讀取配置信息繼承

如:接口

InputStream in  = getClass().getClassLoader().getResourceAsStream("jdbc.properties")
Properties info  = new Properties();
info.load(in);
user = info.getProperty("user");
password = info.getProperty("password");

2、寫方法get

FileOutputStream fo = new FileOutputStream("jdbctest.properties");
Properties info  = new Properties();
info.setProperty("user","root");
info.setProperty("password","123456");
info.store(fo,"test");

store方法可以將info屬性列表寫入到Properties中持久化到本地文件。servlet

相關文章
相關標籤/搜索