123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.iamberry.wechat.tools;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.Enumeration;
- import java.util.Map;
- import java.util.Properties;
- import javax.servlet.ServletContext;
- import org.apache.commons.collections.map.HashedMap;
- import org.springframework.web.context.ContextLoader;
- import org.springframework.web.context.WebApplicationContext;
- /**
- * description: 读写配置文件工具
- * @author: 张应真
- * @createDate: 2016年6月13日
- */
- public class PropertiesUtils {
- // private static final String PATH = "config.properties";
- // private static final String OUTPATH = "/WEB-INF/classes/ResultInfo.properties";
- /**
- * 根据key读取value
- * @param in
- * @param key
- * @return
- */
- public static String readValue(InputStream in, String key) {
- Properties props = new Properties();
- try {
- // InputStream in = new BufferedInputStream(new FileInputStream(filePath));
- props.load(in);
- String value = props.getProperty(key);
- System.out.println("key:"+key +"====================="+ "value:"+value);
- return value;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- /**
- * 读取properties的全部信息
- * @param in
- * @return
- */
- @SuppressWarnings("unchecked")
- public static Map<String,String>readProperties(InputStream in) {
- Properties props = new Properties();
- Map<String, String> map=new HashedMap();
- try {
- // InputStream in = new BufferedInputStream(new FileInputStream(path));
- props.load(in);
- Enumeration en = props.propertyNames();
- while (en.hasMoreElements()) {
- String key = (String) en.nextElement();
- String Property = props.getProperty(key);
- map.put(key, Property);
- // System.out.println(key +"-----"+ Property);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return map;
- }
- /**
- * 写入properties信息
- * @param outpath
- * @param parameterName
- * @param parameterValue
- */
- public static void writeProperties(String outpath, String parameterName,String parameterValue) {
- Properties prop = new Properties();
- try {
- //获取ResultInfo.properties路径
- // WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
- // ServletContext servletContext = webApplicationContext.getServletContext();
- // InputStream in=servletContext.getResourceAsStream(outpath);
- InputStream in =new FileInputStream(outpath);
- // 从输入流中读取属性列表(键和元素对)
- prop.load(in);
- // 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
- // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
- OutputStream fos = new FileOutputStream(outpath);
- prop.setProperty(parameterName, parameterValue);
- // 以适合使用 load 方法加载到 Properties 表中的格式,
- // 将此 Properties 表中的属性列表(键和元素对)写入输出流
- prop.store(fos, "Update '" + parameterName + "' value '"+ parameterValue+"'");
- } catch (IOException e) {
- e.printStackTrace();
- System.err.println("路径: " + outpath + "----键:"+ parameterName + "----值:");
- }
- }
- // public static void main(String[] args) {
- //
- // }
- }
|