java读取,写入properties文件,Properties工具类
程序员文章站
2022-05-16 13:33:21
...
一.用ResourceBundle
ResourceBundle rb = ResourceBundle.getBundle("env"); //没有.properties结尾
String driver = rb.getString("jdbc.driverClassName");
二.用Properties
Properties env = new Properties();
//InputStream is = 当前类.class.getClassLoader().getResourceAsStream("/env.properties")
InputStream is = 当前类.class.getClassLoader().getResourceAsStream("env.properties")
//InputStream is = ClassLoader.getSystemResourceAsStream("env.properties");
env.load(is);
env.getProperty("jdbc.driverClassName")
第一种要写/,第三种在web容器下会有问题,因为web容器有多个ClassLoader,会找不到文件。
env.properties
jdbc.driverClassName= oracle.jdbc.driver.OracleDriver jdbc.url= jdbc:oracle:thin:@192.168.1.186:1521:orcl jdbc.username=xxx jdbc.password=xxx
Properties工具类
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * Properties工具类 * @author happyqing * @since 2014.6.6 */ public class PropertiesUtil { private static final Log log = LogFactory.getLog(PropertiesUtil.class); private static Properties env = new Properties(); static { try { //PropertiesHelper.class.getResourceAsStream("env.properties"); // /com/cici/conf/env.properties //ClassLoader.getSystemResourceAsStream("env.properties"); InputStream is = PropertiesUtil.class.getClassLoader().getResourceAsStream("env.properties"); env.load(is); is.close(); } catch (Exception e) { log.error(e); } } /** * 取属性值 * @param key * @return */ public static String getProperty(String key){ return env.getProperty(key); } /** * 设置属性值 * @param key * @param value */ public static void setProperty(String key, String value){ try{ File file = new File(PropertiesUtil.class.getClassLoader().getResource(".").getPath()+File.separator+"env.properties"); FileOutputStream outStream = new FileOutputStream(file); env.setProperty(key, value); //写入properties文件 env.store(outStream, null); } catch (Exception ex) { log.error(ex); } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(PropertiesUtil.getProperty("txtLength")); //System.out.println(PropertiesUtil.class.getClassLoader().getResource(".").getPath()); } }
JAVA操作properties文件
http://www.cnblogs.com/panjun-Donet/archive/2009/07/17/1525597.html
Java读取Properties文件的六种方法
http://hi.baidu.com/hgd0324/item/1d5e923973b77c4d033edcaf