package com.huimv.video.util;

import java.io.*;
import java.util.Iterator;
import java.util.Map;

/**
 * @Project : huimv.shiwan
 * @Package : com.huimv.video.util
 * @Description : TODO
 * @Author : yuxuexuan
 * @Create : 2021/1/8 0008 16:03
 **/
public  class PropertiesUtils {

    /**
     * 根据key获取prpperties中的某一项值
     * @param key
     * @param fileURL properties地址
     * @return
     */
    public static String getFileIO(String key, String fileURL) {
        java.util.Properties prop = new java.util.Properties();
        InputStream in=null;
        try {
            in = new BufferedInputStream(new FileInputStream(fileURL));
            prop.load(in);
            //根据key 获得所对应的value
            return prop.getProperty(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    /**
     * 修改并写properties
     * @param map
     * @param fileURL
     * @return
     */
    public static boolean writeData(Map<String, Object> map, String fileURL) {
        java.util.Properties prop = new java.util.Properties();
        InputStream fis = null;
        OutputStream fos = null;
        try {
            //获得文件
            File file = new File(fileURL);
            //查看文件是否存在
            if (!file.exists()){
                return false;
            }
            fis = new FileInputStream(file);
            prop.load(fis);
            fis.close();// 一定要在修改值之前关闭fis
            fos = new FileOutputStream(file);
            Iterator<Map.Entry<String, Object>> valueSet = map.entrySet().iterator();
            //便利map的值
            while (valueSet.hasNext()) {
                Map.Entry<String, Object> entry = (Map.Entry<String, Object>) valueSet.next();
                String key = entry.getKey().toString();
                String value= entry.getValue().toString();
                prop.setProperty(key, value);
                prop.store(fos, "Update '" + key + "' value");
            }
            fos.close();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fos.close();
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return false;
    }
}
