import org.springframework.context.annotation.Profile;import java.io.*;import java.util.HashMap;import java.util.Map;import java.util.Properties;/** * 形容: 配置文件工具类 * * @author pengjie_yao * @date 2019/9/9 15:16 */public class PropertiesUtils {    /**     * 传递键值对的Map,更新properties文件     * @param fileName 文件名(放在resource源包目录下),须要后缀     * @param keyValueMap 键值对Map     */    public static void updateProperties(String fileName, Map<String, String> keyValueMap) throws Exception {        //获取文件门路        String filePath = Profile.class.getClassLoader().getResource(fileName).toURI().getPath();        System.out.println("propertiesPath:" + filePath);        Properties props = new Properties();        BufferedReader br = null;        BufferedWriter bw = null;        try {            // 从输出流中读取属性列表(键和元素对)            br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));            props.load(br);            br.close();            // 写入属性文件            bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath)));            // 清空旧的文件            // props.clear();            for (String key : keyValueMap.keySet()) {                props.setProperty(key, keyValueMap.get(key));                System.out.println("配置文件中要进行批改的key为:"+key);                System.out.println("批改后的数据为:"+keyValueMap.get(key));            }            props.store(bw, "扭转数据");            bw.close();        } catch (IOException e) {            e.printStackTrace();            System.err.println("Visit " + filePath + " for updating " + "" + " value error");        } finally {            try {                br.close();                bw.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * @Title: getProfileByClassLoader     * @Description: 采纳ClassLoader(类加载器)形式进行读取配置信息     * @return Map<String,Object> 以Map键值对形式返回配置文件内容     * @param fileName 配置文件名称     * 长处:能够在非Web利用中读取配置资源信息,能够读取任意的资源文件信息     * 毛病:只能加载类classes上面的资源文件     */    public static Map<String, Object> getProfileByClassLoader(String fileName) {        // 通过ClassLoader获取到文件输出流对象        InputStream in = Profile.class.getClassLoader().getResourceAsStream(fileName);        BufferedReader reader = new BufferedReader(new InputStreamReader(in));        Properties props = new Properties();        Map<String, Object> profileMap = new HashMap<String, Object>();        try {            props.load(reader);            for (Object key : props.keySet()) {                profileMap.put(key.toString(), props.getProperty(key.toString()));            }        } catch (IOException e) {            e.printStackTrace();        }        return profileMap;    }}

参考链接:
https://github.com/f763180872...