zoukankan      html  css  js  c++  java
  • Java读取properties配置文件经常用法

    在开发中对properties文件的操作还是蛮常常的。所以总结了几种操作方法,为后面的开发能够进行參考。


    1、通过java.util.ResourceBundle类来读取

    这边測试用到了枚举类进行传入文件的key值,然后获取value,能够进行灵活的配置。

    通过这样的方式读取properties文件不须要加.properties后缀名,仅仅需文件名称就可以,假设有放在某一个包下,要加包的限定名。如放在com.frame.util包下,则要路径要用com/fram/util


    config.properties:

    CONFIGFILE_DIR=F:\configDir       //两个斜杠是转义用


    枚举类ConfigFileEnum.java

    public enum ConfigFileEnum {
      CONFIGFILE_DIR("CONFIGFILE_DIR");
    	private String name = null;
    	
    	ConfigFileEnum(String name){
    		this.name = name;
    	}
    	public String getName(){
    		return this.name;
    	}
    	
    }

    读取配置文件类ConfigUtil.java

    public class ConfigUtil {
    private static ResourceBundle resourceBundle = ResourceBundle.getBundle("config", Locale.ENGLISH);
    public static String getConfigKey(ConfigFileEnum configFileEnum){
    	return resourceBundle.getString(configFileEnum.getName());
    }
    }

    測试:

    	@Test
    	public void testProperties(){
    		String key = ConfigUtil.getConfigKey(ConfigFileEnum.CONFIGFILE_DIR);
    		System.out.println(key);
    	}


    2、通过jdk提供的java.util.Properties类

    在使用properties文件之前还须要载入属性文件,它提供了两个方法:load和loadFromXML。
    load有两个方法的重载:load(InputStream inStream)、load(Reader reader)。所以。可依据不同的方式来载入属性文件。

    下面提供三种方法:

    1、通过当前类载入器的getResourceAsStream方法获取

    InputStream inStream = TestHttpClient.class.getClassLoader().getResourceAsStream("config.properties");

    2、从文件获取

    InputStream inStream = new FileInputStream(new File("D:\dir\Frame\src\config.properties"));  


    3、通过类载入器实现,和第一种一样

    InputStream inStream =  ClassLoader.getSystemResourceAsStream("config.properties");

    測试:

    	@Test
    	public void testProperties() throws IOException{
    		Properties p = new Properties();
    		InputStream inStream = TestHttpClient.class.getClassLoader().getResourceAsStream("config.properties");
    		p.load(inStream);
    		System.out.println(p.get("CONFIGFILE_DIR"));
    	}




  • 相关阅读:
    sed命令详解 皇星客栈
    FD_set FD_zero 皇星客栈
    linux tr命令详解 皇星客栈
    解决中文乱码问题(Ubuntu) 皇星客栈
    FIFO深度 皇星客栈
    输入阻抗 皇星客栈
    APROM Data Flash LDROM 皇星客栈
    kubernetes 1.21 部署业务
    kubernetes 1.21部署 cephcsi rbd
    kubernetes 1.21 部署 dashboard
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6706385.html
Copyright © 2011-2022 走看看