Properties文件解析
Posted wf2010517141
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Properties文件解析相关的知识,希望对你有一定的参考价值。
Properties文件中存放的是key=value类型的数据,便于查看和修改,下面的方法是一种很好用的解析方法:
1、resources下新建application.properties文件
#跳转路径 app.redirect.port=8081 app.redirect.host=http://{0}:{1}/bi #pds接口账户 service.client.pds.url=http://pds.nriet.com/Windchill/servlet/IE/tasks/ext/bi/BI_GetChangeInfo.xml?year={0}&month={1} service.client.pds.username=wcadmin service.client.pds.password=!qaz2wsx3edc #crm接口用戶信息 crm.client.url=https://site.cloudcc.com/api/appURL/get crm.client.username=[email protected] crm.client.password=111111 #erp接口采购质量清单 erp.quality.url=https://site.cloudcc.com/api/appURL/get erp.quality.nameSpace=[email protected] erp.quality.method=GetPurchaseQualityList #erp接口生产外包清单 erp.outer.url=https://site.cloudcc.com/api/appURL/get erp.outer.nameSpace=[email protected] erp.outer.method=GetProductOuterList
2、新增PropertiesUtil工具类,用于解析properties,如下
package com.glaway.foundation.common.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.util.Properties; public class PropertiesUtil { private String properiesName = ""; public PropertiesUtil() {} public PropertiesUtil(String fileName) { this.properiesName = fileName; } public String readProperty(String key) { value = ""; InputStream is = null; try { is = PropertiesUtil.class.getClassLoader().getResourceAsStream(this.properiesName); Properties p = new Properties(); p.load(is); return p.getProperty(key); } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } public Properties getProperties() { p = new Properties(); InputStream is = null; try { is = PropertiesUtil.class.getClassLoader().getResourceAsStream(this.properiesName); p.load(is); return p; } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } public void writeProperty(String key, String value) { InputStream is = null; OutputStream os = null; Properties p = new Properties(); try { is = new FileInputStream(this.properiesName); p.load(is); os = new FileOutputStream(PropertiesUtil.class.getClassLoader().getResource(this.properiesName).getFile()); p.setProperty(key, value); p.store(os, key); os.flush(); os.close(); return; } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != is) { is.close(); } if (null != os) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } } public static Properties getProperties(String propertiesFilePath) { Properties prop = new Properties(); try { prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(propertiesFilePath)); } catch (IOException e) { return null; } return prop; } public static void main(String[] args) { PropertiesUtil p = new PropertiesUtil("sysConfig.properties"); p.writeProperty("namess", "wang"); LogUtil.info(p.readProperty("namess")); } }
3、调用PropertiesUtil工具类解析*.properties文件
package com.glaway.offline.test.main; import com.glaway.foundation.common.util.PropertiesUtil; public class PropertiesTest { public static void main(String[] args) { PropertiesUtil p = new PropertiesUtil("application.properties"); String pds_url = p.readProperty("service.client.pds.url"); System.out.println("pds_url="+pds_url); //pds_url=http://pds.nriet.com/Windchill/servlet/IE/tasks/ext/bi/BI_GetChangeInfo.xml?year={0}&month={1} } }
以上是关于Properties文件解析的主要内容,如果未能解决你的问题,请参考以下文章
java 怎么读取resource properties 并且解析成map