zoukankan      html  css  js  c++  java
  • java读取存在src目录下和存在同级目录下的配置文件

    如果我有个文件存在src下一级的地方和存在src同级的目录应该怎么用相对路径去获取如图:

     

    一、如果存在src同级的地方应该是InputStream in = new BufferedInputStream(new FileInputStream("./set.properties"));就可以了。

    代码如下:

    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.Iterator;
    import java.util.Properties;

    public class PropertiesUtil {
    public static String getUrlValue(String urlName) {
            String url = null;
            Properties prop = new Properties();
            try {
            //ConfigUtil.class.getClassLoader().getSystemClassLoader().getResource(""));
                ClassLoader classLoader = PropertiesUtil.class.getClassLoader();// 读取属性文件xxxxx.properties
                //InputStream in = classLoader.getResourceAsStream("config/config.properties");
                InputStream in = new BufferedInputStream(new FileInputStream("./set.properties"));
                prop.load(in); /// 加载属性列表
                Iterator<String> it = prop.stringPropertyNames().iterator();
                while (it.hasNext()) {
                    if (it.next().equals(urlName)) {
                        url = prop.getProperty(urlName);
                    }
                }
                in.close();
            } catch (Exception e) {
                
            }
            return url;
        }
    }
    配置文件如:

    测试:

    import cn.deos.util.PropertiesUtil;
    public class test {
    public static void main(String []args){

    String urlValue = PropertiesUtil.getUrlValue("defaultFileDirectory");
    System.out.println("urlValue=="+urlValue);
    }
    }
    二 、如果存在src下一级的地方应该是ClassLoader classLoader = PropertiesUtil.class.getClassLoader();// 读取属性文件xxxxx.properties
                //InputStream in = classLoader.getResourceAsStream("set.properties");就可以了。

    代码如下:

    import java.io.InputStream;
    import java.util.Iterator;
    import java.util.Properties;
    public class PropertiesUtil {
    public static String getUrlValue(String urlName) {
            String url = null;
            Properties prop = new Properties();
            try {
                ClassLoader classLoader = PropertiesUtil.class.getClassLoader();// 读取属性文件xxxxx.properties
                InputStream in = classLoader.getResourceAsStream("config/config.properties");
                //InputStream in = new BufferedInputStream(new FileInputStream("set.properties"));
                prop.load(in); /// 加载属性列表
                Iterator<String> it = prop.stringPropertyNames().iterator();
                while (it.hasNext()) {
                    if (it.next().equals(urlName)) {
                        url = prop.getProperty(urlName);
                    }
                }
                in.close();
            } catch (Exception e) {
                
            }
            return url;
        }

    }
    测试如下:

    import cn.deos.util.PropertiesUtil;
    public class test {
    public static void main(String []args){

    String urlValue = PropertiesUtil.getUrlValue("defaultFileDirectory");
    System.out.println("urlValue=="+urlValue);
    }
    }
     

  • 相关阅读:
    Warning:detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
    Ubuntu16.04安装K8s步骤和踩坑记录【不错】
    修改主机名(/etc/hostname和/etc/hosts区别)
    Windows10内置Linux子系统初体验
    Docker Swarm常用命令
    Docker Swarm集群部署
    Docker容器CPU、memory资源限制
    Docker监控容器资源的占用情况
    修改Docker容器启动配置参数
    sort-colors——排序3种数字
  • 原文地址:https://www.cnblogs.com/xiaoma000deblog/p/10290707.html
Copyright © 2011-2022 走看看