properties文件读写 自己写的几个方法

properties文件读写 自己写的几个方法

/** * 描述:数据库初始化基本类 * * @作者 王群 * @创建日期 2010-04-08 * @修改人 xxx * @修改日期 xxx * @检查人 xxx * @检查日期 xxx */ import java.sql.SQLException; import com.ibatis.sqlmap.client.SqlMapClient; import com.oumasoft.bstmanage.ibatis.SqlMapConfig; import com.oumasoft.bstmanage.ibatis.data.JsgnPo; import com.oumasoft.bstmanage.ibatis.data.Test; import java.util.*; import org.w3c.dom.*; import java.io.*; import javax.servlet.http.HttpServletRequest; import javax.xml.transform.stream.*; import org.w3c.dom.*; import javax.xml.transform.*; import javax.xml.parsers.*; import javax.xml.transform.dom.*; import org.apache.log4j.Logger; import com.oumasoft.bstmanage.ibatis.dao.ClientDao; public class InitDBDao{ static Logger logger = Logger.getLogger(ClientDao.class.getName()); static SqlMapClient sqlMap = null; private static File file = null;//读写文件 private static DocumentBuilderFactory factory = null; private static DocumentBuilder builder = null; /** * 修改properties文件,参数是map键值集合,根据键修改值,如果没有键值对就创建 * @param filePath 文件路径 * @param keyVal 内容参数 * @param over是否覆盖,true的话就覆盖,false的话就是更新 * @return */ public static boolean writeProperties(String filePath, Map<String, String> keyVal ,boolean over) { boolean flag = false; Properties props = new Properties(); InputStream ips = null; try { ips = new BufferedInputStream(new FileInputStream(filePath)); props.load(ips); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { ips.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("输入关闭出错"); } } OutputStream fos = null; if (over) { // 将新添加的内容覆盖原来的内容 try { fos = new FileOutputStream(filePath); // 将keys转换成数组 // 将键值逐一添加到property中 for (Object str : keyVal.keySet().toArray()) { props.setProperty(str.toString(), keyVal.get(str)); } props.store(fos, "set"); flag = true; } catch (IOException e) { e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("输出流无法关闭"); } } }else{ try { fos = new FileOutputStream(filePath); for (Object key : keyVal.keySet().toArray()) { props.setProperty(key.toString(), keyVal.get(key).toString()); } props.store(fos,""); flag = true; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error("输出流关闭出错"); } } } return flag; } /** * properties文件按键得值 * * @param filePath properties 文件的路径 * @param key 要取值的键 * @return 得到的值 */ public static String readValue(String filePath, String key) { Properties props = new Properties(); InputStream ips = null; try { ips = new BufferedInputStream(new FileInputStream(filePath)); props.load(ips); String value = props.getProperty(key); return value; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } finally { try { if(null != ips){ ips.close(); } } catch (IOException e) { e.printStackTrace(); } } } }

properties文件调用路径的三种方法

1.方法一
InputStream fis =TestProperties.class.getClassLoader().getResourceAsStream("init.properties")

2.方法二(要求TestProperties和init.properties在同一目录下)
InputStream fis =TestProperties.class.getResourceAsStream("init.properties")

3.方法三,对于Web工程也可以这样。
先获取ServletContext,然后
InputStream in=context.getResourceAsStream("/WEB-INF/classes/init.properties");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值