注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

Java Properties 属性文件读取写入工具类  

2012-12-11 17:47:52|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
自己编写的一个简单工具类,方便操作属性文件 

构造方法必须传入属性文件的位置,工具类会自动定位到项目的物理根目录到/Webroot后面需要传入路径,传入的路径记住以/开头。 

##现在工具类未对太多的安全性验证。 


Java代码 
  1. package cn.net.withub.smsp.common.utils;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.InputStream;  
  7. import java.util.Properties;  
  8.   
  9. import org.apache.commons.logging.Log;  
  10. import org.apache.commons.logging.LogFactory;  
  11.   
  12. import bsh.This;  
  13.   
  14. import cn.net.withub.lab.SMGPLab;  
  15.   
  16. /** 
  17.  * 配置文件读取和写入工具类 
  18.  * @author Jacky.Jiang 
  19.  * 
  20.  */  
  21. public class PropertiesHelper {  
  22.     private static Log logger = LogFactory.getLog(This.class);   
  23.       
  24.     private String project_root = "";  
  25.     private File file = null;  
  26.   
  27.       
  28.     public PropertiesHelper(String filePath) {  
  29.         //构造时获取到项目的物理根目录  
  30.         project_root = this.getClass().getResource("/").toString().replace("file:/""");  
  31.         project_root = project_root.substring(0,project_root.indexOf("/WEB-INF"));  
  32.           
  33.         if(filePath != null && filePath.length() > 0){  
  34.             try {  
  35.                 file = new File(project_root+filePath);  
  36.                   
  37.             } catch (Exception e) {  
  38.                 logger.error(e);  
  39.             }  
  40.         }  
  41.     }  
  42.       
  43.     public String getProperties(String key){  
  44.         InputStream fis = null;  
  45.         try {  
  46.             Properties prop = new Properties();  
  47.             fis = new FileInputStream(getAbsolutePath());  
  48.               
  49.             prop.load(fis);  
  50.               
  51.             return prop.getProperty(key);  
  52.               
  53.         } catch (Exception e) {  
  54.             logger.error(e);  
  55.         }finally{  
  56.             try{if(fis != null){fis.close();}}catch(Exception e){}  
  57.         }  
  58.           
  59.         return "";  
  60.     }  
  61.       
  62.     public void setProperties(String key,String value)throws Exception{  
  63.         Properties prop = new Properties();  
  64.           
  65.           
  66.         FileOutputStream outputFile = null;  
  67.         InputStream fis = null;  
  68.         try {  
  69.             //输入流和输出流要分开处理, 放一起会造成写入时覆盖以前的属性  
  70.             fis = new FileInputStream(getAbsolutePath());  
  71.             //先载入已经有的属性文件  
  72.             prop.load(fis);  
  73.               
  74.             //追加新的属性  
  75.             prop.setProperty(key, value);  
  76.               
  77.             //写入属性  
  78.             outputFile = new FileOutputStream(getAbsolutePath());   
  79.             prop.store(outputFile, "");  
  80.               
  81.             outputFile.flush();  
  82.         } catch (Exception e) {  
  83.             logger.error(e);  
  84.             throw e;  
  85.         }finally{  
  86.             try{if(fis != null){fis.close();}}catch(Exception e){}  
  87.             try{if(outputFile != null){outputFile.close();}}catch(Exception e){}  
  88.         }  
  89.     }  
  90.       
  91.       
  92.     public String getAbsolutePath(){  
  93.         try {  
  94.             return file.getAbsolutePath();  
  95.         } catch (Exception e) {  
  96.             logger.error(e);  
  97.         }  
  98.         return "";  
  99.     }  
  100. }  


下面的代码引用牛人写的,大家可以借鉴学习:


Java代码 
  1. package com.common.util;  
  2.   
  3. import java.io.FileNotFoundException;  
  4. import java.io.IOException;  
  5. import java.util.Hashtable;  
  6. import java.util.Properties;  
  7.   
  8. import org.apache.log4j.Logger;  
  9.   
  10. /** 
  11.  *  
  12.  * 功能描述:动态读取配置文件来加载属性 
  13.  * <p> 
  14.  * 版权所有: 
  15.  * <p> 
  16.  * 未经本公司许可,不得以任何方式复制或使用本程序任何部分 
  17.  *  
  18.  * @author dengcd 新增日期:2008-10-9 
  19.  * @author 你的姓名 修改日期:2008-10-9 
  20.  * @since wapportal_manager version(2.0) 
  21.  */  
  22. public class PropertyReader {  
  23.   
  24.  private static Logger _log = Logger.getLogger(PropertyReader.class);  
  25.   
  26.  private static Hashtable<String, Properties> pptContainer = new Hashtable<String, Properties>();  
  27.   
  28.  /** 
  29.   *  
  30.   * 方法用途和描述: 获得属性  
  31.   *  
  32.   * @param propertyFilePath 
  33.   *            属性文件(包括类路径) 
  34.   * @param key 
  35.   *            属性键 
  36.   * @return 属性值 
  37.   * @author dengcd 新增日期:2008-10-9 
  38.   * @author 你的姓名 修改日期:2008-10-9 
  39.   * @since wapportal_manager version(2.0) 
  40.   */  
  41.  public final static String getValue(String propertyFilePath, String key) {  
  42.   Properties ppts = getProperties(propertyFilePath);  
  43.   return ppts == null ? null : ppts.getProperty(key);  
  44.  }  
  45.   
  46.  /** 
  47.   *  
  48.   * 方法用途和描述: 获得属性文件中Key所对应的值  
  49.   *  
  50.   * @param propertyFilePath 
  51.   *            属性文件路径(包括类路径或文件系统中文件路径) 
  52.   * @param key 
  53.   *            属性的键 
  54.   * @param isAbsolutePath 
  55.   *            是否为绝对路径:true|false〔即是本地文件系统路径,比如:C:/test.propreties〕<br> 
  56.   * <br> 
  57.   *            <b>注:</b>不能通过类路径来获取到属性文件,而只知道属性文件的文件系统路径,即文件系统地址则用此方法来获取其中的Key所对应的Value 
  58.   * @return key的属性值 
  59.   * @author dengcd 新增日期:2008-10-9 
  60.   * @author 你的姓名 修改日期:2008-10-9 
  61.   * @since wapportal_manager version(2.0) 
  62.   */  
  63.  public final static String getValue(String propertyFilePath, String key,  
  64.    boolean isAbsolutePath) {  
  65.   if (isAbsolutePath) {  
  66.    Properties ppts = getPropertiesByFs(propertyFilePath);  
  67.    return ppts == null ? null : ppts.getProperty(key);  
  68.   }  
  69.   return getValue(propertyFilePath, key);  
  70.  }  
  71.   
  72.  /** 
  73.   *  
  74.   * 方法用途和描述: 获得属性文件的属性  
  75.   *  
  76.   * @param propertyFilePath 
  77.   *            属性文件(包括类路径) 
  78.   * @return 属性 
  79.   * @author dengcd 新增日期:2008-10-9 
  80.   * @author 你的姓名 修改日期:2008-10-9 
  81.   * @since wapportal_manager version(2.0) 
  82.   */  
  83.  public final static Properties getProperties(String propertyFilePath) {  
  84.   if (propertyFilePath == null) {  
  85.    _log.error("propertyFilePath is null!");  
  86.    return null;  
  87.   }  
  88.   Properties ppts = pptContainer.get(propertyFilePath);  
  89.   if (ppts == null) {  
  90.    ppts = loadPropertyFile(propertyFilePath);  
  91.    if (ppts != null) {  
  92.     pptContainer.put(propertyFilePath, ppts);  
  93.    }  
  94.   }  
  95.   return ppts;  
  96.  }  
  97.   
  98.  /** 
  99.   *  
  100.   * 方法用途和描述: 获得属性文件的属性  
  101.   *  
  102.   * @param propertyFilePath 
  103.   *            属性文件路径(包括类路径及文件系统路径) 
  104.   * @return 属性文件对象 Properties 
  105.   * @author dengcd 新增日期:2008-10-9 
  106.   * @author 你的姓名 修改日期:2008-10-9 
  107.   * @since wapportal_manager version(2.0) 
  108.   */  
  109.  public final static Properties getPropertiesByFs(String propertyFilePath) {  
  110.   if (propertyFilePath == null) {  
  111.    _log.error("propertyFilePath is null!");  
  112.    return null;  
  113.   }  
  114.   Properties ppts = pptContainer.get(propertyFilePath);  
  115.   if (ppts == null) {  
  116.    ppts = loadPropertyFileByFileSystem(propertyFilePath);  
  117.    if (ppts != null) {  
  118.     pptContainer.put(propertyFilePath, ppts);  
  119.    }  
  120.   }  
  121.   return ppts;  
  122.  }  
  123.   
  124.  /** 
  125.   *  
  126.   * 方法用途和描述: 加载属性  
  127.   *  
  128.   * @param propertyFilePath 
  129.   *            属性文件(包括类路径) 
  130.   * @return 属性 
  131.   * @author dengcd 新增日期:2008-10-9 
  132.   * @author 你的姓名 修改日期:2008-10-9 
  133.   * @since wapportal_manager version(2.0) 
  134.   */  
  135.  private static Properties loadPropertyFile(String propertyFilePath) {  
  136.   java.io.InputStream is = PropertyReader.class  
  137.     .getResourceAsStream(propertyFilePath);  
  138.   if (is == null) {  
  139.    return loadPropertyFileByFileSystem(propertyFilePath);  
  140.   }  
  141.   Properties ppts = new Properties();  
  142.   try {  
  143.    ppts.load(is);  
  144.    return ppts;  
  145.   } catch (Exception e) {  
  146.    _log.debug("加载属性文件出错:" + propertyFilePath, e);  
  147.    return null;  
  148.   }  
  149.  }  
  150.   
  151.  /** 
  152.   *  
  153.   * 方法用途和描述: 从文件系统加载属性文件  
  154.   *  
  155.   * @param propertyFilePath 
  156.   *            属性文件(文件系统的文件路径) 
  157.   * @return 属性 
  158.   * @author dengcd 新增日期:2008-10-9 
  159.   * @author 你的姓名 修改日期:2008-10-9 
  160.   * @since wapportal_manager version(2.0) 
  161.   */  
  162.  private static Properties loadPropertyFileByFileSystem(  
  163.    final String propertyFilePath) {  
  164.   try {  
  165.    Properties ppts = new Properties();  
  166.    ppts.load(new java.io.FileInputStream(propertyFilePath));  
  167.    return ppts;  
  168.   } catch (java.io.FileNotFoundException e) {  
  169.    _log.error("FileInputStream(\"" + propertyFilePath  
  170.      + "\")! FileNotFoundException: " + e);  
  171.    return null;  
  172.   } catch (java.io.IOException e) {  
  173.    _log.error("Properties.load(InputStream)! IOException: " + e);  
  174.    return null;  
  175.   }  
  176.  }  
  177.   
  178.  /** 
  179.   *  
  180.   * 方法用途和描述: 对存在的属性文件中添加键值对并保存 
  181.   *  
  182.   * @param propertyFilePath 
  183.   *            属性文件的路径(包括类路径及文件系统路径) 
  184.   * @param htKeyValue 
  185.   *            键值对Hashtable 
  186.   * @return 
  187.   * @author dengcd 新增日期:2008-10-9 
  188.   * @author 你的姓名 修改日期:2008-10-9 
  189.   * @since wapportal_manager version(2.0) 
  190.   */  
  191.  public final static boolean setValueAndStore(String propertyFilePath,  
  192.    java.util.Hashtable<String, String> htKeyValue) {  
  193.   return setValueAndStore(propertyFilePath, htKeyValue, null);  
  194.  }  
  195.   
  196.  /** 
  197.   *  
  198.   * 方法用途和描述: 对存在的属性文件中添加键值对并保存  
  199.   *  
  200.   * @param propertyFilePath 
  201.   *            属性文件的路径(包括类路径及文件系统路径) 
  202.   * @param htKeyValue 
  203.   *            键值对Hashtable 
  204.   * @param storeMsg 
  205.   *            保存时添加的附加信息(注释) 
  206.   * @return 
  207.   * @author dengcd 新增日期:2008-10-9 
  208.   * @author 你的姓名 修改日期:2008-10-9 
  209.   * @since wapportal_manager version(2.0) 
  210.   */  
  211.  public final static boolean setValueAndStore(String propertyFilePath,  
  212.    java.util.Hashtable<String, String> htKeyValue, String storeMsg) {  
  213.   Properties ppts = getProperties(propertyFilePath);  
  214.   
  215.   if (ppts == null || htKeyValue == null) {  
  216.    return false;  
  217.   }  
  218.   ppts.putAll(htKeyValue);  
  219.   java.io.OutputStream stream = null;  
  220.   try {  
  221.    stream = new java.io.FileOutputStream(propertyFilePath);  
  222.   } catch (FileNotFoundException e) {  
  223.    _log.debug("propertyFilePath = " + propertyFilePath);  
  224.    String path = PropertyReader.class.getResource(propertyFilePath)  
  225.      .getPath();  
  226.    _log.debug("~~~~~~~~path~~~XXX~~~~~" + path);  
  227.    try {  
  228.     stream = new java.io.FileOutputStream(path);  
  229.    } catch (FileNotFoundException e1) {  
  230.     _log.error("FileNotFoundException! path=" + propertyFilePath);  
  231.     return false;  
  232.    }  
  233.   }  
  234.   
  235.   if (stream == null) {  
  236.    return false;  
  237.   }  
  238.   
  239.   try {  
  240.    ppts.store(stream, storeMsg != null ? storeMsg  
  241.      : "set value and store.");  
  242.    return true;  
  243.   } catch (java.io.IOException e) {  
  244.    e.printStackTrace();  
  245.    return false;  
  246.   } finally {  
  247.    if (stream != null) {  
  248.     try {  
  249.      stream.close();  
  250.     } catch (IOException e) {  
  251.      e.printStackTrace();  
  252.     }  
  253.    }  
  254.   }  
  255.  }  
  256.   
  257.  /** 
  258.   *  
  259.   * 方法用途和描述: 创建属性文件  
  260.   *  
  261.   * @param propertyFilePath 
  262.   *            要存储属性文件的路径 
  263.   * @param htKeyValue 
  264.   *            属性文件中的键值对Hashtable 
  265.   * @return 
  266.   * @author dengcd 新增日期:2008-10-9 
  267.   * @author 你的姓名 修改日期:2008-10-9 
  268.   * @since wapportal_manager version(2.0) 
  269.   */  
  270.  public final static boolean createPropertiesFile(String propertyFilePath,  
  271.    java.util.Hashtable<String, String> htKeyValue) {  
  272.   java.io.File file = new java.io.File(propertyFilePath);  
  273.   if (!file.exists()) {  
  274.    try {  
  275.     file.createNewFile();  
  276.    } catch (java.io.IOException e) {  
  277.     e.printStackTrace();  
  278.    }  
  279.   }  
  280.   return setValueAndStore(propertyFilePath, htKeyValue,  
  281.     "create properties file:" + file.getName());  
  282.  }  
  283.   
  284.  /** 
  285.   *  
  286.   * 方法用途和描述:设置属性值  
  287.   *  
  288.   * @param propertyFilePath 
  289.   *            属性文件(包括类路径) 
  290.   * @param key 
  291.   *            属性键 
  292.   * @param value 
  293.   *            属性值 
  294.   * @return 
  295.   * @author dengcd 新增日期:2008-10-9 
  296.   * @author 你的姓名 修改日期:2008-10-9 
  297.   * @since wapportal_manager version(2.0) 
  298.   */  
  299.  public final static boolean setValue(String propertyFilePath, String key,  
  300.    String value) {  
  301.   Properties ppts = getProperties(propertyFilePath);  
  302.   if (ppts == null) {  
  303.    return false;  
  304.   }  
  305.   ppts.put(key, value);  
  306.   return true;  
  307.  }  
  308.   
  309.  /** 
  310.   *  
  311.   * 方法用途和描述: 保存属性文件对象  
  312.   *  
  313.   * @param properties 
  314.   *            属性文件对象 
  315.   * @param propertyFilePath 
  316.   *            要保存的路径 
  317.   * @param msg 
  318.   *            保存时添加的附加信息(注释) 
  319.   * @author dengcd 新增日期:2008-10-9 
  320.   * @author 你的姓名 修改日期:2008-10-9 
  321.   * @since wapportal_manager version(2.0) 
  322.   */  
  323.  public final static void store(Properties properties,  
  324.    String propertyFilePath, String msg) {  
  325.   try {  
  326.    java.io.OutputStream stream = new java.io.FileOutputStream(  
  327.      propertyFilePath);  
  328.    properties.store(stream, msg);  
  329.   } catch (java.io.FileNotFoundException e) {  
  330.    _log.error("FileOutputStream(" + propertyFilePath  
  331.      + ")! FileNotFoundException: " + e);  
  332.   } catch (java.io.IOException e) {  
  333.    _log.error("store(stream, msg)! IOException: " + e);  
  334.    e.printStackTrace();  
  335.   }  
  336.  }  
  337.   
  338.  /** 
  339.   *  
  340.   * 方法用途和描述: 删除属性值  
  341.   *  
  342.   * @param propertyFilePath 
  343.   *            属性文件(包括类路径) 
  344.   * @param key 
  345.   *            属性键 
  346.   * @return 
  347.   * @author dengcd 新增日期:2008-10-9 
  348.   * @author 你的姓名 修改日期:2008-10-9 
  349.   * @since wapportal_manager version(2.0) 
  350.   */  
  351.  public final static String removeValue(String propertyFilePath, String key) {  
  352.   
  353.   Properties ppts = getProperties(propertyFilePath);  
  354.   if (ppts == null) {  
  355.    return null;  
  356.   }  
  357.   return (String) ppts.remove(key);  
  358.  }  
  359.   
  360.  /** 
  361.   *  
  362.   * 方法用途和描述: 删除属性文件中的Key数组所对应的键值对  
  363.   *  
  364.   * @param propertyFilePath 
  365.   *            属性文件路径(包括类路径及文件系统路径) 
  366.   * @param key 
  367.   *            key数组 
  368.   * @return 属性文件对象 
  369.   * @author dengcd 新增日期:2008-10-9 
  370.   * @author 你的姓名 修改日期:2008-10-9 
  371.   * @since wapportal_manager version(2.0) 
  372.   */  
  373.  public final static Properties removeValue(String propertyFilePath,  
  374.    String[] key) {  
  375.   if (key == null) {  
  376.    _log.error("key[] is null!");  
  377.    return null;  
  378.   }  
  379.   Properties ppts = getProperties(propertyFilePath);  
  380.   if (ppts == null) {  
  381.    return null;  
  382.   }  
  383.   for (String strKey : key) {  
  384.    ppts.remove(strKey);  
  385.   }  
  386.   return ppts;  
  387.  }  
  388.   
  389.  /** 
  390.   *  
  391.   * 方法用途和描述:删除属性文件中的Key数组所对应的键值对,并将属性文件对象持久化(即保存) 
  392.   *  
  393.   *  
  394.   * @param propertyFilePath 
  395.   *            属性文件路径(包括类路径及文件系统路径) 
  396.   * @param key 
  397.   *            属性文件中的key数组 
  398.   * @return 成功与否(true|false) 
  399.   * @author dengcd 新增日期:2008-10-9 
  400.   * @author 你的姓名 修改日期:2008-10-9 
  401.   * @since wapportal_manager version(2.0) 
  402.   */  
  403.  public final static boolean removeValueAndStore(String propertyFilePath,  
  404.    String[] key) {  
  405.   Properties ppts = removeValue(propertyFilePath, key);  
  406.   if (ppts == null) {  
  407.    return false;  
  408.   }  
  409.   store(ppts, propertyFilePath, "batch remove key value!");  
  410.   return true;  
  411.  }  
  412.   
  413.  /** 
  414.   *  
  415.   * 方法用途和描述: 更新指定路径的属性文件中的键所对应的值  
  416.   *  
  417.   * @param propertyFilePath 
  418.   *            属性文件路径(包括类路径及文件系统路径) 
  419.   * @param key 
  420.   *            属性文件中的key 
  421.   * @param newValue 
  422.   *            要更新的新值 
  423.   * @return 成功与否(true|false) 
  424.   * @author dengcd 新增日期:2008-10-9 
  425.   * @author 你的姓名 修改日期:2008-10-9 
  426.   * @since wapportal_manager version(2.0) 
  427.   */  
  428.  public final static boolean updateValue(String propertyFilePath,  
  429.    String key, String newValue) {  
  430.   if (key == null || newValue == null) {  
  431.    _log.error("key or newValue is null!");  
  432.    return false;  
  433.   }  
  434.   java.util.Hashtable<String, String> ht = new java.util.Hashtable<String, String>();  
  435.   ht.put(key, newValue);  
  436.   return setValueAndStore(propertyFilePath, ht, "update " + key  
  437.     + "'s value!");  
  438.  }  
  439.   
  440.  /** 
  441.   *  
  442.   * 方法用途和描述: 批量更新指定路径的属性文件中的键所对应的值  
  443.   *  
  444.   * @param propertyFilePath 
  445.   *            属性文件路径(包括类路径及文件系统路径) 
  446.   * @param htKeyValue 
  447.   *            要更新的键值对Hashtable 
  448.   * @return 成功与否(true|false) 
  449.   * @author dengcd 新增日期:2008-10-9 
  450.   * @author 你的姓名 修改日期:2008-10-9 
  451.   * @since wapportal_manager version(2.0) 
  452.   */  
  453.  public final static boolean batchUpdateValue(String propertyFilePath,  
  454.    java.util.Hashtable<String, String> htKeyValue) {  
  455.   if (propertyFilePath == null || htKeyValue == null) {  
  456.    return false;  
  457.   }  
  458.   return setValueAndStore(propertyFilePath, htKeyValue,  
  459.     "batch update key value!");  
  460.  }  
  461.   
  462.  /** 
  463.   *  
  464.   * 方法用途和描述: 移除加载的属性文件  
  465.   *  
  466.   * @param propertyFilePath 
  467.   *            属性文件(包括类路径) 
  468.   * @return 
  469.   * @author dengcd 新增日期:2008-10-9 
  470.   * @author 你的姓名 修改日期:2008-10-9 
  471.   * @since wapportal_manager version(2.0) 
  472.   */  
  473.  public final static Properties removePropertyFile(String propertyFilePath) {  
  474.   
  475.   return pptContainer.remove(propertyFilePath);  
  476.  }  
  477.   
  478.  /** 
  479.   *  
  480.   * 方法用途和描述: 重新加载某个Property文件  
  481.   *  
  482.   * @param propertyFilePath 
  483.   *            要重新加载的Property文件,如果当前内存中没有的话则加载,否则替换 
  484.   * @author dengcd 新增日期:2008-10-9 
  485.   * @author 你的姓名 修改日期:2008-10-9 
  486.   * @since wapportal_manager version(2.0) 
  487.   */  
  488.  public final static void reloadPropertyFile(String propertyFilePath) {  
  489.   pptContainer.remove(propertyFilePath);  
  490.   loadPropertyFile(propertyFilePath);  
  491.  }  
  492.   
  493.  /** 
  494.   *  
  495.   * 方法用途和描述: 获得属性文件的路径  
  496.   *  
  497.   * @param pkg 
  498.   *            包名 
  499.   * @param propertyFileName 
  500.   *            属性文件名 
  501.   * @return 
  502.   * @author dengcd 新增日期:2008-10-9 
  503.   * @author 你的姓名 修改日期:2008-10-9 
  504.   * @since wapportal_manager version(2.0) 
  505.   */  
  506.  public final static String getPpropertyFilePath(String pkg,  
  507.    String propertyFileName) {  
  508.   
  509.   pkg = pkg == null ? "" : pkg.replaceAll("\\.""/");  
  510.   propertyFileName = propertyFileName.endsWith(".properties") ? propertyFileName  
  511.     : (propertyFileName + ".properties");  
  512.   return "/" + pkg + "/" + propertyFileName;  
  513.  }  
  514.   
  515.  public static void main(String[] args) {  
  516.   String path = "/config/jdbc.properties";  
  517.   String v = PropertyReader.getValue(path, "jdbc.driverClassName");  
  518.   _log.info("value0 = " + v);  
  519.     
  520.     
  521.   Hashtable<String, String> ht = new Hashtable<String, String>();  
  522.   ht.put("name""dengcd");  
  523.   PropertyReader.setValueAndStore(path, ht);  
  524.   String v_ = PropertyReader.getValue(path, "name");  
  525.   _log.info("value1 = " + v_);  
  526.   PropertyReader.reloadPropertyFile(path);  
  527.   String v2_ = PropertyReader.getValue(path, "name");  
  528.   _log.info("value2 = " + v2_);  
  529.  }  
  530. }  
  评论这张
 
阅读(1046)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016