java读写 properties
来源:互联网 发布:网络舆情报告 编辑:程序博客网 时间:2024/05/20 09:24
转自:http://han2000lei.iteye.com/blog/377899
package com.web.connection;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;import java.util.logging.Level;import java.util.logging.Logger;public class Conn { private String fileName="/db.properties";//这里是指放在classes下,如果有包的话,前面加包名即可。例:/com/web/db.properties private String driver = ""; private String url = ""; private String username =""; private String password = ""; Connection conn=null; public Connection getConn(){ Properties p = new Properties();try {InputStream in = Conn.class.getResourceAsStream(fileName);//这里有人用new FileInputStream(fileName),不过这种方式找不到配置文件。有人说是在classes下,我调过了,不行。 p.load(in); in.close(); if(p.containsKey("driver")){ this.driver = p.getProperty("driver"); } if(p.containsKey("url")){ this.url = p.getProperty("url"); } if(p.containsKey("user")){ this.username = p.getProperty("user"); } if(p.containsKey("password")){ this.password = p.getProperty("password"); }} catch (IOException ex) { Logger.getLogger(Conn.class.getName()).log(Level.SEVERE, null, ex);} System.out.println(p.getProperty("driver")); try { Class.forName(this.driver); conn = DriverManager.getConnection(this.url,this.username,this.password); } catch (SQLException ex) { ex.printStackTrace(); System.out.print("获取连接异常"); } catch (ClassNotFoundException ex) { System.out.print("加载驱动出错"); ex.printStackTrace();; } return conn; }}
网上文章常见的几种读取.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());
用ResourceBundle读取.properties文件可避免路径问题
我在jar里读取.properties文件时,总是找不到文件路径,后来用ResourceBundle读取.properties文件即可避免路径问题,代码如下:
//process为文件名,切记不要加 .properties, URL是文件里的键名
- ResourceBundle bundle = ResourceBundle.getBundle("com.ihandy.smsoc.app.process");
- String s = bundle.getString("URL");
- System.out.println(s);
- pURL = s;
3、使用java.util.PropertyResourceBundle类的构造函数
示例:
- InputStream in = new BufferedInputStream(new FileInputStream(name));
- ResourceBundle rb = new PropertyResourceBundle(in);
4、使用class变量的getResourceAsStream()方法
示例:
- InputStream in = 类名.class.getResourceAsStream(name);
- Properties p = new Properties();
- p.load(in);
5、使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 示例:
- InputStream in = 类名.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);
7、Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法 示例:
- InputStream in = context.getResourceAsStream(path);
- Properties p = new Properties();
- p.load(in);
下面的转自:http://www.cnblogs.com/panjun-Donet/archive/2009/07/17/1525597.html
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration;import java.util.Properties;public class TestMain { //根据key读取value public static String readValue(String filePath,String key) { Properties props = new Properties(); try { InputStream in = new BufferedInputStream (new FileInputStream(filePath)); props.load(in); String value = props.getProperty (key); System.out.println(key+value); return value; } catch (Exception e) { e.printStackTrace(); return null; } } //读取properties的全部信息 public static void readProperties(String filePath) { Properties props = new Properties(); try { InputStream in = new BufferedInputStream (new FileInputStream(filePath)); props.load(in); Enumeration en = props.propertyNames(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); String Property = props.getProperty (key); System.out.println(key+Property); } } catch (Exception e) { e.printStackTrace(); } } //写入properties信息 public static void writeProperties(String filePath,String parameterName,String parameterValue) { Properties prop = new Properties(); try { InputStream fis = new FileInputStream(filePath); //从输入流中读取属性列表(键和元素对) prop.load(fis); //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。 //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。 OutputStream fos = new FileOutputStream(filePath); prop.setProperty(parameterName, parameterValue); //以适合使用 load 方法加载到 Properties 表中的格式, //将此 Properties 表中的属性列表(键和元素对)写入输出流 prop.store(fos, "Update '" + parameterName + "' value"); } catch (IOException e) { System.err.println("Visit "+filePath+" for updating "+parameterName+" value error"); } } public static void main(String[] args) { readValue("info.properties","url"); writeProperties("info.properties","age","21"); readProperties("info.properties" ); System.out.println("OK"); }
另可以用apache 的 类库 propertiesconfiguration
http://commons.apache.org/proper/commons-configuration/apidocs/org/apache/commons/configuration/PropertiesConfiguration.html
0 0
- Java读写Properties文件
- java读写properties文件
- java读写properties文件
- Java读写properties文件
- Java读写Properties文件
- Java读写Properties文件
- java读写 properties
- Java读写properties文件
- Java 读写Properties配置文件
- Java 读写Properties配置文件
- Java读写properties配置文件
- Java读写Properties文件
- Java读写Properties文件
- java读写properties
- java读写properties配置文件
- Java 读写Properties配置文件
- Java读写Properties配置文件
- Java 读写Properties配置文件
- codewarrior 5.0/5.1 .prm文件解读
- lowlevel_init.S
- Linux主机root切换用户获取$?结果异常案例
- Same Tree
- cocos2d-x 2.2.3 win32程序发布注意
- java读写 properties
- 【数据结构练习】专家评委打分
- 笔试面试那件小事(数据库概念知识)
- android 仿QQ5.0左侧菜单,仿ISO7菜单,residemenu
- STL deque的crend方法(11)
- HtmlEncode与HtmlDecode的区别
- http响应状态码大全
- PITRTools
- 网络加载的图片缓存(做本地化保存)