JAVA工具类(9)--属性文件properties的读取

package com;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;

/**
 * properties文件读写工具
 * Created by charlin on 2017/9/9.
 */
public class PropertiesUtil {

    private static String fileName = "conf/messages.properties";
    private static String configFilePath = null;
    static {
        try {
            configFilePath = PropertiesUtil.class.getClassLoader().getResource(fileName).getPath();
            configFilePath = java.net.URLDecoder.decode(configFilePath, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获得文件路径
     * @param fileName
     * @return
     */
    public static String getFilePath(String fileName){
        try {
            configFilePath = PropertiesUtil.class.getClassLoader().getResource(fileName).getPath();
            configFilePath = java.net.URLDecoder.decode(configFilePath, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return configFilePath;
    }

    /**
     * 根据key获得值
     * @param key
     * @return
     */
    public static String getValue(String key, String fileName){
        String value = null;
        try {
            Properties properties = new Properties();
            FileInputStream fis = new FileInputStream(getFilePath(fileName));
            properties.load(fis);
            if (fis != null) fis.close();
            if(properties.containsKey(key)){
                value = properties.getProperty(key).trim();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  value;
    }

    /**
     * 获得默认值
     * @param key
     * @return
     */
    public static String getValue(String key){
        return getValue(key, getFilePath(fileName));
    }

    /**
     * 获得所有的key
     * @param fileName
     * @return
     */
    public static List getKeyList(String fileName){
        List list = new ArrayList();
        try {
            Properties properties = new Properties();
            FileInputStream fis = new FileInputStream(getFilePath(fileName));
            properties.load(fis);
            if (fis != null) fis.close();
            Set set = properties.keySet();
            for(Iterator it = set.iterator(); it.hasNext();){
                list.add(it.next());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  list;
    }

    public static void main(String[] args) {
        List list = getKeyList(fileName);
        System.out.println("list:"+list);
    }
}

———————————————————————
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
有需求者请进站查看,非诚勿扰

https://item.taobao.com/item.htm?spm=686.1000925.0.0.4a155084hc8wek&id=555888526201

01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)
——————————————————————–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值