读取jar包内外配置文件,xml property文件的读取修改
2016-07-01 15:32
453 查看
jar包中的类如何读取包内和包外的配置文件
最近将代码打包成jar包,关于如何处理读取配置文件的问题特此记录一下。
Java代码
out.properties
a.jar
-com
-a.class
-in.properties
如上所示,out.properties是于a.jar包在同一文件目录下;
in.properties是在a.jar包内部的。
关于a.class如何读取jar内或jar外的配置文件,
如下所示:
Java代码
FileInputStream inputStream1 = new FileInputStream("out.properties");
InputStream inputStream2 = a.class.getResourceAsStream("/in.properties");
最近将代码打包成jar包,关于如何处理读取配置文件的问题特此记录一下。
Java代码
out.properties
a.jar
-com
-a.class
-in.properties
如上所示,out.properties是于a.jar包在同一文件目录下;
in.properties是在a.jar包内部的。
关于a.class如何读取jar内或jar外的配置文件,
如下所示:
Java代码
FileInputStream inputStream1 = new FileInputStream("out.properties");
InputStream inputStream2 = a.class.getResourceAsStream("/in.properties");
public class FileUtil { public static String getProperty(String name) throws IOException { Properties p = new Properties(); File f = new File("/Users/binshi/Documents/workspace/config.properties"); InputStream in=new FileInputStream(f); System.out.println(in.read()); p.load(in); in.close(); String mqtt_host=p.getProperty(name); return mqtt_host; } public static void setC3P0() throws ParserConfigurationException, SAXException, IOException, TransformerException { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); Document doc=db.parse("/Users/binshi/Documents/workspace/ProtocolParser/src/c3p0-config.xml"); NodeList list=doc.getElementsByTagName("property"); for(int i=0;i<list.getLength();i++) { Element ele=(Element)list.item(i); if(ele.getAttribute("name").equals("jdbcUrl")) { System.out.println(ele.getTextContent()); ele.setTextContent(FileUtil.getProperty("jdbcUrl")); System.out.println(ele.getTextContent()); } else if(ele.getAttribute("name").equals("user")) { ele.setTextContent(FileUtil.getProperty("user")); } else if(ele.getAttribute("name").equals("password")) { ele.setTextContent(FileUtil.getProperty("password")); } } TransformerFactory transformerFactory=TransformerFactory.newInstance(); Transformer transformer=transformerFactory.newTransformer(); DOMSource domSource=new DOMSource(doc); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); StreamResult result=new StreamResult(new FileOutputStream("/Users/binshi/Documents/workspace/ProtocolParser/src/c3p0-config.xml")); transformer.transform(domSource,result); } public static void main(String agrs[]) throws IOException, ParserConfigurationException, SAXException, TransformerException { System.out.println(getProperty("ss")); //setC3P0(); }
相关文章推荐
- 进程控制类命令:linux关机命令总结
- Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛)
- keepalived + nginx组建高可用负载平衡Web server集群
- Content Shell Apk分析之概述
- Nginx学习历程_配置文件说明
- nginx配置多个站点
- SSH配置远程主机信任
- Linux——马克一些常用命令行
- 14.6.2 Moving or Copying InnoDB Tables to Another Machine 移动或者copy InnoDB 表到另外的机器
- 14.6.2 Moving or Copying InnoDB Tables to Another Machine 移动或者copy InnoDB 表到另外的机器
- 14.6.2 Moving or Copying InnoDB Tables to Another Machine 移动或者copy InnoDB 表到另外的机器
- Linux环境下写一个进度条
- Nginx 模块自主开发八: 总结 Nginx框架的流程
- virtualBox安装centos6增强包报错解决及配置共享文件夹
- 前谷歌首席 Java 架构师谈如何设优秀的 API
- Linux下Tomcat进行远程调试
- xshell 操作方法
- Apache安全配置
- arm-linux-uboot-kernel-rootfs移植
- 在 Web 项目中应用 Apache Shiro