首页>代码>SSM+Shiro+Druid实现的企业资产后台管理系统代码分享>/zcdevmgr/src/main/java/com/dev/PropertiesUtil.java
package com.dev;
 
  
import java.io.File;
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.util.Enumeration;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.Properties;

import org.apache.commons.io.FileUtils;  
  
/** 
 * 读取Properties综合类,默认绑定到classpath下的config.properties文件。 
 * @author GaoYu 
 */  
public class PropertiesUtil {  
    //配置文件的路径  
    private String configPath=null;  
      
    /** 
     * 配置文件对象 
     */  
    private Properties props=null;  
      
    /** 
     * 默认构造函数,用于sh运行,自动找到classpath下的config.properties。 
     */  
    public PropertiesUtil(String configPath) throws IOException{  
       // InputStream in = PropertiesUtil.class.getClassLoader().getResourceAsStream(configPath);  
        InputStream in = FileUtils.openInputStream(new File(configPath));
        props = new Properties();  
        props.load(in);  
        //关闭资源  
        in.close();  
    }  
      
    /** 
     * 根据key值读取配置的值 
     * Jun 26, 2010 9:15:43 PM 
     * @author GaoYu 
     * @param key key值 
     * @return key 键对应的值  
     * @throws IOException  
     */  
    public String readValue(String key) throws IOException {  
        return  props.getProperty(key);  
    }  
      
    /** 
     * 读取properties的全部信息 
     * Jun 26, 2010 9:21:01 PM 
     * @author GaoYu 
     * @throws FileNotFoundException 配置文件没有找到 
     * @throws IOException 关闭资源文件,或者加载配置文件错误 
     *  
     */  
    public Map<String,String> readAllProperties() throws FileNotFoundException,IOException  {  
        //保存所有的键值  
        Map<String,String> map=new HashMap<String,String>();  
        Enumeration en = props.propertyNames();  
        while (en.hasMoreElements()) {  
            String key = (String) en.nextElement();  
            String Property = props.getProperty(key);  
            map.put(key, Property);  
        }  
        return map;  
    }  
  
    /** 
     * 设置某个key的值,并保存至文件。 
     * Jun 26, 2010 9:15:43 PM 
     * @author GaoYu 
     * @param key key值 
     * @return key 键对应的值  
     * @throws IOException  
     */  
    public void setValue(String key,String value) throws IOException {  
        Properties prop = new Properties();  
        InputStream fis = new FileInputStream(this.configPath);  
        // 从输入流中读取属性列表(键和元素对)  
        prop.load(fis);  
        // 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。  
        // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。  
        OutputStream fos = new FileOutputStream(this.configPath);  
        prop.setProperty(key, value);  
        // 以适合使用 load 方法加载到 Properties 表中的格式,  
        // 将此 Properties 表中的属性列表(键和元素对)写入输出流  
        prop.store(fos,"last update");  
        //关闭文件  
        fis.close();  
        fos.close();  
    }  
      
    public static void main(String[] args) {  
        PropertiesUtil p;  
        try {  
            p = new PropertiesUtil("/opt/autologin/conf.properties");  
            System.out.println(p.readAllProperties());  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
}  
最近下载更多
wyx065747  LV67 1月3日
date122  LV9 2025年9月11日
code_loading  LV5 2025年9月9日
285443037  LV1 2025年7月17日
woyaonao  LV1 2025年6月10日
刘孟飞  LV22 2025年5月24日
fantesy  LV17 2025年3月24日
微信网友_7371218154688512  LV4 2025年2月5日
a562571298  LV8 2025年1月4日
LoveSummer  LV6 2024年10月31日
最近浏览更多
筱洋1616  LV9 2025年11月2日
date122  LV9 2025年9月11日
code_loading  LV5 2025年9月9日
285443037  LV1 2025年7月17日
woyaonao  LV1 2025年6月10日
刘孟飞  LV22 2025年5月24日
chengguo123 2025年4月2日
暂无贡献等级
fantesy  LV17 2025年3月24日
docnnxxy688 2025年3月22日
暂无贡献等级
1252590909  LV2 2025年3月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友