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 MapreadProperties(InputStream in) { Properties props = new Properties(); Map 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) { // // } }