操作properties文件,注意抹掉最前面的"file:"

package com.xiewanzhi.property;
import java.io.BufferedInputStream;
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.util.Properties;


public class PropertiesConfig {

    /**
     * 根据KEY,读取文件对应的值
     * @param filePath 文件路径,即文件所在包的路径,例如:java/util/config.properties
     * @param key 键
     * @return key对应的值
     */
    public static String readData(String filePath, String key) {
        //获取绝对路径
        filePath = PropertiesConfig.class.getResource("/" + filePath).toString();
        //截掉路径的”file:“前缀
        filePath = filePath.substring(6);
        Properties props = new Properties();
        try {
            InputStream in = new BufferedInputStream(new FileInputStream(filePath));
            props.load(in);
            in.close();
            String value = props.getProperty(key);
            return value;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void writeData(String filePath, String key, String value) {
        //获取绝对路径
        filePath = PropertiesConfig.class.getResource("/" + filePath).toString();
        //截掉路径的”file:/“前缀
        filePath = filePath.substring(6);
        Properties prop = new Properties();
        try {
            File file = new File(filePath);
            if (!file.exists())
                file.createNewFile();
            InputStream fis = new FileInputStream(file);
            prop.load(fis);
            //一定要在修改值之前关闭fis
            fis.close();
            OutputStream fos = new FileOutputStream(filePath);
            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");
        }
    }
    
    public static void main(String[] args) {
        System.out.println(PropertiesConfig.readData("com/xiewanzhi/property/config.properties", "port"));
//        PropertiesConfig.writeData("com/xiewanzhi/property/config.properties", "port", "12345");
    }
}

 

posted @ 2013-10-30 13:56  yufenghou  阅读(242)  评论(0编辑  收藏  举报