首页 > 代码库 > java.util.Properties工具类

java.util.Properties工具类

import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Properties;/** * @Description 加载属性配置文件工具类 * @Package com.viathink.utils.PropertiesFilesUtils.java * @date 2012-5-16 下午3:18:19 * @version V1.0 */public class PropertiesFilesUtils {    private static final PropertiesFilesUtils propertiesFiles = new PropertiesFilesUtils();    /**     * 存放所有的属性配置文件对象     */    private Map<String, Properties> propertiesMap = new HashMap<String, Properties>();    private PropertiesFilesUtils() {    }    /**     * 获得属性配置文件工具类的实例对象     *      * @return PropertiesFilesUtils 对象     */    public static PropertiesFilesUtils getInstance() {        return propertiesFiles;    }    /**     * 获取Properties文件对象     *      * @param PropertiesFileName     * @return     * @throws IOException     */    public synchronized Properties getProperties(String propertiesFileName) throws IOException {        if (propertiesFileName == null || "".equals(propertiesFileName)) {            throw new IllegalArgumentException("The propertiesFileName is illegal argument!");        }        Properties prop = propertiesMap.get(propertiesFileName);        if (prop == null) {            prop = new Properties();            //注意这个文件的InputStream,这里要修改            InputStream is = this.getClass().getResourceAsStream(propertiesFileName);            if (is == null)                throw new FileNotFoundException("The file \"" + propertiesFileName + "\" is  not found!");            prop.load(is);            propertiesMap.put(propertiesFileName, prop);        }        return prop;    }    /**     * 将properties文件写到磁盘上     *      * @param properties     *            属性文件     * @param propertiesFilePath     *            要保存的路径     * @throws IOException     */    public void writePropertiesFile(Properties properties, String propertiesFilePath) throws IOException {        if (properties == null || propertiesFilePath == null || "".equals(propertiesFilePath))            throw new IllegalArgumentException("The props or propertiesFilePath  is illegal argument!");        FileWriter fw = new FileWriter(propertiesFilePath);        properties.store(fw, null);        fw.flush();        fw.close();    }    /**     * 更新属性文件的某个属性,并保存到磁盘上     *      * @param properties     *            要更新的属性文件     * @param propertyName     *            属性名称     * @param propertyValue     *            属性值     * @param filePath     *            保存的文件路径     * @throws IOException     */    public void updatePropertiesFile(Properties properties, String propertyName, String propertyValue, String filePath)            throws IOException {        if (properties == null || propertyName == null || "".equals(propertyName) || propertyValue =http://www.mamicode.com/= null                || "".equals(propertyValue) || filePath == null || "".equals(filePath))            throw new IllegalArgumentException("The parameters  is illegal argument!");        properties.setProperty(propertyName, propertyValue);        writePropertiesFile(properties, filePath);    }    /**     * 根据属性配置文件名称和属性名称获取属性配置值     *      * @param propertiesFileName     *            属性配置文件名称     * @param propertyName     *            属性名称     * @return 属性值     * @throws IOException     */    public String getProperty(String propertiesFileName, String propertyName) throws IOException {        Properties prop = getProperties(propertiesFileName);        return prop.getProperty(propertyName);    }    /**     * 获得Properties对象列表     *      * @return     */    public List<Properties> getProperties() {        if (propertiesMap.isEmpty())            return null;        return new LinkedList<Properties>(propertiesMap.values());    }    /**     * 获得属性对象Map     *      * @return     */    public Map<String, Properties> getPropertiesMap() {        return propertiesMap;    }    public static void main(String[] args) throws IOException {        String realPath="p.txt";        PropertiesFilesUtils pfu = PropertiesFilesUtils.getInstance();        Properties pro = pfu.getProperties(realPath);        Properties pro1 = pfu.getProperties(realPath);        Properties pro2 = pfu.getProperties(realPath);        Properties pro3 = pfu.getProperties(realPath);                System.out.println(pro == pro1);        System.out.println(pro == pro2);        System.out.println(pro == pro3);                System.out.println(pfu.getProperties().size());        System.out.println(pfu.getPropertiesMap().size());        System.out.println(pro.getProperty("a"));        pfu.updatePropertiesFile(pro, "messge.type", "image", realPath);        System.out.println(pro.getProperty("messge.type"));    }}

 

java.util.Properties工具类