博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
properties文件读写 自己写的几个方法
阅读量:4125 次
发布时间:2019-05-25

本文共 3634 字,大约阅读时间需要 12 分钟。

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");

转载地址:http://wxlpi.baihongyu.com/

你可能感兴趣的文章
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>