欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Properties 类读取配置文件

程序员文章站 2022-07-12 10:47:23
...

1、使用java.util.Properties类的load()方法 示例:

  Java代码

  InputStream in = lnew BufferedInputStream(new FileInputStream(name));

  Properties p = new Properties();

  p.load(in);

  2、使用java.util.ResourceBundle类的getBundle()方法

  示例:

  Java代码

  ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

  用ResourceBundle读取.properties文件可避免路径问题

  我在jar里读取.properties文件时,总是找不到文件路径,后来用ResourceBundle读取.properties文件即可避免路径问题,代码如下:

  //process为文件名,切记不要加 .properties, URL是文件里的键名

  Java代码

  ResourceBundle bundle = ResourceBundle.getBundle("com.ihandy.smsoc.app.process");

  String s = bundle.getString("URL");

  System.out.println(s);

  pURL = s;

  3、使用java.util.PropertyResourceBundle类的构造函数

  示例:

  Java代码

  InputStream in = new BufferedInputStream(new FileInputStream(name));

  ResourceBundle rb = new PropertyResourceBundle(in);

  4、使用class变量的getResourceAsStream()方法

  示例:

  Java代码

  InputStream in = 类名.class.getResourceAsStream(name);

  Properties p = new Properties();

  p.load(in);

  5、使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 示例:

  Java代码

  InputStream in = 类名.class.getClassLoader().getResourceAsStream(name);

  Properties p = new Properties();

  p.load(in);

  6、使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法 示例:

  Java代码

  InputStream in = ClassLoader.getSystemResourceAsStream(name);

  Properties p = new Properties();

  p.load(in);

  7、Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法 示例:

  Java代码

  InputStream in = context.getResourceAsStream(path);

  Properties p = new Properties();

  p.load(in);

 

 

================================================================================

  1. import java.io.IOException;   
  2. import java.io.InputStream;   
  3. import java.util.Enumeration;   
  4. import java.util.Properties;   
  5.   
  6.   
  7. /**  
  8.  *  Properties   
  9.  *  配置文件要有中文就使用xml文件加载  
  10.  * @author whp  
  11.  *  
  12.  */  
  13. public class PropertiesConfig extends Properties {   
  14.     /**  
  15.      *   
  16.      */  
  17.     private static final long serialVersionUID = 1L;   
  18.        
  19.     protected static final Properties p=new Properties();   
  20.     public PropertiesConfig(String file) {   
  21.         InputStream in=PropertiesConfig.class.getResourceAsStream(file);   
  22.         if(in!=null){   
  23.             try {   
  24.                 p.load(in);   
  25.                 in.close();   
  26.             } catch (IOException e) {   
  27.                 System.out.println("加载配置文件错误");   
  28.                 e.printStackTrace();   
  29.             }   
  30.                
  31.         }   
  32.     }   
  33.     @Override  
  34.     public  String getProperty(String key, String defaultValue) {   
  35.         return p.getProperty(key, defaultValue);   
  36.     }   
  37.     @Override  
  38.     public String getProperty(String key) {   
  39.         return p.getProperty(key);   
  40.     }   
  41.        
  42.     /**  
  43.      *  属性列表  
  44.      */  
  45.     private void propertiesList(){   
  46.         Enumeration e=p.keys();   
  47.         while(e.hasMoreElements()){   
  48.             String key=(String)e.nextElement();   
  49.             System.out.println(key+"="+p.getProperty(key));   
  50.         }   
  51.     }   
  52.        
  53.     public static void main(String[] args) {   
  54.         PropertiesConfig pro=new PropertiesConfig("config.properties");   
  55.         //String s=pro.getProperty("name");   
  56.         pro.propertiesList();   
  57.         //System.out.println(s);   
  58.     }   
  59.        
  60.        
  61.   
  62. }