解析properties文件通用Java工具类

import com.sun.xml.internal.bind.v2.TODO;

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.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;


public class PropertiesUtil {

    /**
     * 方法: getProperties <br>
     * <p>
     * 描述: 根据key获取value <br>
     * <p>
     *
     * @param key
     * @return
     */
    public static String getProperties(String key) {
        Properties prop = new Properties();
        InputStream url = PropertiesUtil.class.getResourceAsStream("/conf/deploy.properties");
        FileInputStream in = null;
        try {
            prop.load(url);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                    in = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


        return (String) prop.get(key);

    }

	/**
	 * 根据文件路径&key获取value
	 * @param path
	 * @param key
	 * @return
	 */
    public static String getProperties(String path, String key) {
        Properties prop = new Properties();
        InputStream url = null;
        FileInputStream in = null;
        try {
            url = new FileInputStream(path);
        } catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
            e2.printStackTrace();
        }

        try {
            prop.load(url);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                    in = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return (String) prop.get(key);

    }

	/**
	 * 添加key&value
	 * @param key
	 * @param value
	 */
    public static void addProperties(String key, String value) {

        InputStream url = PropertiesUtil.class.getResourceAsStream("/conf/deploy.properties");
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }

		/*Map toSaveMap = new HashMap();
		Set keys = prop.keySet();
		for (Iterator itr = keys.iterator(); itr.hasNext();) {
		String oldKey = (String) itr.next();
		Object oldValue = prop.get(oldKey);
		toSaveMap.put(oldKey, oldValue);
		}
		toSaveMap.put(key,value);
		
		prop.putAll(toSaveMap);
		
		System.out.println(toSaveMap.toString());*/
        prop.put(key, value);


        try {
            OutputStream outputStream = new FileOutputStream(new File(PropertiesUtil.class.getResource("/conf/deploy.properties").getFile()));
            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();
            System.out.println("添加成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

	/**
	 * 设置key & value 
	 * @param path
	 * @param key
	 * @param value
	 */
	public static void addProperties(String path, String key, String value) {
        InputStream url = null;
        try {
            url = new FileInputStream(path);
        } catch (FileNotFoundException e1) {
		// TODO Auto-generated catch block
            e1.printStackTrace();
        }
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }


        Map toSaveMap = new HashMap();
        Set keys = prop.keySet();
        for (Iterator itr = keys.iterator(); itr.hasNext(); ) {
            String oldKey = (String) itr.next();
            Object oldValue = prop.get(oldKey);
            toSaveMap.put(oldKey, oldValue);
        }
        toSaveMap.put(key, value);

        prop.putAll(toSaveMap);

        System.out.println(toSaveMap.toString());
		
        try {
            OutputStream outputStream = new FileOutputStream(new File(path));
            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();
            System.out.println("添加成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

	/**
	 * 修改
	 * @param key
	 * @param value
	 */
	public static void updateProperties(String key, String value) {
        InputStream url = PropertiesUtil.class.getResourceAsStream("/conf/deploy.properties");
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }


		/*Map toSaveMap = new HashMap();
		Set keys = prop.keySet();
		for (Iterator itr = keys.iterator(); itr.hasNext();) {
		String oldKey = (String) itr.next();
		Object oldValue = prop.get(oldKey);
		toSaveMap.put(oldKey, oldValue);
		}
		toSaveMap.put(key,value);
		
		prop.putAll(toSaveMap);
		
		System.out.println(toSaveMap.toString());*/
        prop.put(key, value);


        try {
            OutputStream outputStream = new FileOutputStream(new File(PropertiesUtil.class.getResource("/conf/deploy.properties").getFile()));
            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();
            System.out.println("修改成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

	/**
	 * 修改
	 * @param path
	 * @param key
	 * @param value
	 */
    public static void updateProperties(String path, String key, String value) {
        InputStream url = null;
        try {
            url = new FileInputStream(path);
        } catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
            e1.printStackTrace();
        }
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }

		/*Map toSaveMap = new HashMap();
		Set keys = prop.keySet();
		for (Iterator itr = keys.iterator(); itr.hasNext();) {
		String oldKey = (String) itr.next();
		Object oldValue = prop.get(oldKey);
		toSaveMap.put(oldKey, oldValue);
		}
		toSaveMap.put(key,value);
		
		prop.putAll(toSaveMap);
		
		System.out.println(toSaveMap.toString());*/
        prop.put(key, value);


        try {
            OutputStream outputStream = new FileOutputStream(new File(path));
            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();
            System.out.println("修改成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

	/**
	 * 删除 
	 * @param key
	 */
	public void delProperties(String key) {
		//将文件中key,value先拿出来
        InputStream url = PropertiesUtil.class.getResourceAsStream("/conf/deploy.properties");
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }

		/*Map toSaveMap = new HashMap();
		Set keys = prop.keySet();
		for (Iterator itr = keys.iterator(); itr.hasNext();)
		{
		String oldKey = (String) itr.next();
		Object oldValue = prop.get(oldKey);
		toSaveMap.put(oldKey, oldValue);
		}
		prop.clear();
		toSaveMap.remove(key);
		
		prop.putAll(toSaveMap);*/
        prop.remove(key);

		//将所有键值对再写入文件
        try {

            FileOutputStream outputStream = new FileOutputStream(PropertiesUtil.class.getResource("/conf/deploy.properties").getFile());

            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();

            System.out.println("删除成功");
        } catch (IOException e) {

            e.printStackTrace();

        }

    }

	/**
	 * 删除
	 * @param path
	 * @param key
	 */
    public void delProperties(String path, String key) {

		//将文件中key,value先拿出来
        InputStream url = null;
        try {
            url = new FileInputStream(path);
        } catch (FileNotFoundException e1) {
		// TODO Auto-generated catch block
            e1.printStackTrace();
        }
        Properties prop = new Properties();
        try {
            prop.load(url);
        } catch (IOException e) {
            e.printStackTrace();
        }

		/*Map toSaveMap = new HashMap();
		Set keys = prop.keySet();
		for (Iterator itr = keys.iterator(); itr.hasNext();)
		{
		String oldKey = (String) itr.next();
		Object oldValue = prop.get(oldKey);
		toSaveMap.put(oldKey, oldValue);
		}
		prop.clear();
		toSaveMap.remove(key);
		
		prop.putAll(toSaveMap);
		
		System.out.println(toSaveMap.toString());*/
        prop.remove(key);

		//将所有键值对再写入文件
        try {

            FileOutputStream outputStream = new FileOutputStream(path);

            prop.store(outputStream, null);
            outputStream.flush();
            outputStream.close();

            System.out.println("删除成功");
        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}
posted @ 2024-03-06 21:51  Evan1024  阅读(7)  评论(0编辑  收藏  举报