package com.lpc.util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import com.sun.jmx.defaults.JmxProperties;
import com.sun.org.apache.commons.beanutils.locale.LocaleBeanUtils;
/**
* 7种方法获取Properties的值
* @author kakax
* @date 2012-06-25
* @version 1.0
*/
public class PropertiesUtil {
/**
* 1、使用java.util.Properties 类的load()方法
* @param url
*/
public static Properties getProperties_1(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
Properties p = new Properties ();
p.load(in);
return p;
}
/**
* 2、使用java.util.ResourceBundle类的getBundle()方法
* @param url
* @return
*/
public static ResourceBundle getProperties_2(String url) {
ResourceBundle rb = ResourceBundle.getBundle(url, LocaleBeanUtils.getDefaultLocale());
return rb;
//rb.getString(key)
}
/**
* 3、使用java.util.PropertyResourceBundle类的构造函数
* @param url
* @return
* @throws IOException
*/
public static ResourceBundle getProperties_3(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
ResourceBundle rb = new PropertyResourceBundle(in);
return rb;
}
/**
* 4、使用class变量的getResourceAsStream()方法
* @param url
* @return
* @throws IOException
*/
public static Properties getProperties_4(String url) throws IOException {
InputStream in = JmxProperties.class.getResourceAsStream(url);
Properties p = new Properties ();
p.load(in);
return p;
}
/**
* 5、使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
* @param url
* @return
* @throws IOException
*/
public static Properties getProperties_5(String url) throws IOException {
InputStream in = JmxProperties.class.getClassLoader().getResourceAsStream(url);
Properties p = new Properties ();
p.load(in);
return p;
}
/**
* 6、使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
* @param url
* @return
* @throws IOException
*/
public static Properties getProperties_6(String url) throws IOException {
InputStream in = ClassLoader.getSystemResourceAsStream(url);
Properties p = new Properties ();
p.load(in);
return p;
}
// 补充
// Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
// 示例:
// public static Properties getProperties_8(String url) {
// InputStream in = context.getResourceAsStream(url);
// Properties p = new Properties ();
// p.load(in);
// }
}