您的位置:首页 > 运维架构

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

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: