读取properties配置文件(包括windows和linux环境)

/**
 * 读取properties配置文件
 */
package com.wizincloud.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Properties;


public class GetProperties {

	/**
	 * 获取key对应的value
	 * @param key
	 * @return
	 */
	public static String getValue(String key){
	    GetProperties readPps = new GetProperties();
        String strCfgPath="";
        String osType = System.getProperties().getProperty("os.name").toLowerCase();//windows xp

        if(osType.startsWith("windows")){
            strCfgPath = "/config_win.properties";
        }
        else{

            strCfgPath = "/config_linux.properties";

        }
        
		return readPps.getPropertiesValue(key, strCfgPath);
	}
	
    /**
     * 根据文件路径和key获取value
     * @param key
     * @param filePath
     * @return
     */
	public String getPropertiesValue(String key, String filePath) {
		String value = null;
			Properties properties = new Properties();
			try {
				InputStream is = getClass().getResourceAsStream(filePath);
				properties.load(is);
				value = properties.getProperty(key);
				is.close();
			} catch (IOException e) {
				value = null;
			}
			return value;
	}
	
	
	 /**
     * 修改key对应的value
     * @param key
     * @param filePath
     * @return
     */
	public void setPropertiesValue(String key, String value,String filePath) {
		Properties prop = new Properties();
		InputStream fis = null;  
        OutputStream fos = null;  
		try {
			URL url = getClass().getResource(filePath);
			File file = new File(url.toURI());
        	fis = new FileInputStream(file);
            prop.load(fis);  
            fis.close();//一定要在修改值之前关闭fis  
            fos = new FileOutputStream(file);  
            prop.setProperty(key, value);  
            prop.store(fos, "Update '" + key + "' value");  
            fos.close();  
		} catch (IOException e) {
			System.err.println("Visit " + filePath + " for updating " + value + " value error");  
		} catch (URISyntaxException e) {  
            e.printStackTrace();  
        } finally{  
            try {  
                fos.close();  
                fis.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
	}
	
    
	public static void setValue(String key, String value) {  
		GetProperties readPps = new GetProperties();
		String strCfgPath="";
        String osType = System.getProperties().getProperty("os.name").toLowerCase();//windows xp
        if(osType.startsWith("windows")){
            strCfgPath = "/config_win.properties";
        }
        else{
            strCfgPath = "/config_linux.properties";
        }
        readPps.setPropertiesValue(key,value,strCfgPath);
	}   

	public static void main(String[] args){
		System.out.println(GetProperties.getValue("AccessExpires"));
		//GetProperties.setValue("AccessToken","aaaa");
		setValue("AccessExpires","2014-05-03 19:04:18");
	    System.out.println(GetProperties.getValue("AccessExpires"));
	    
	    System.out.println(URLDecoder.decode("http%3A%2F%2Fwww.17tinke.com%2Fpath%3Fmethod%3D8"));
	}
 
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十五楼亮哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值