• PropertiesUtil 获取文件属性值


    有时候不要把一些属性值写死在代码中,而是写在配置在文件中,方便更改

    PropertiesUtil工具类:读取key-value形式的配置文件,根据key获得value值 

    1、测试类

    public class Test{
    
    	private static PropertiesUtil propertiesUtil = new PropertiesUtil("file.properties");
    	//根据文件中的key获取value值
    	String value = propertiesUtil.getStringProperty("文件中的key");
    	
    }
    

      

     2、PropertiesUtil.java工具类

    package com.util;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Collection;
    import java.util.Properties;
    import java.util.Set;
    
    import org.apache.log4j.Logger;
    
    
    public class PropertiesUtil {
    	
    	private static final Logger LOGGER = Logger.getLogger(PropertiesUtil.class);
    
    	private final Properties props;
    
    	public PropertiesUtil(final Properties props) {
    		this.props = props;
    	}
    
    	public PropertiesUtil(final String propertiesFileName) {
    		final Properties properties = new Properties();
    		InputStreamReader in = null;
    		try {
    			in = new InputStreamReader(new FileInputStream(this.getClass().getResource("/").getPath()+propertiesFileName), "UTF-8");
    			/*
    			 * 获取当前工程根目录
    			 * in = new InputStreamReader(new FileInputStream(System.getProperty("user.dir") + File.separator + propertiesFileName), "UTF-8");
    			 */
    			properties.load(in);
    		} catch (final IOException ioe) {
    			LOGGER.error("Unable to read " + propertiesFileName, ioe);
    		} finally {
    			if (in != null) {
    				try {
    					in.close();
    				} catch (final IOException ioe) {
    					LOGGER.error("Unable to close " + propertiesFileName, ioe);
    				}
    			}
    		}
    		this.props = properties;
    	}
    
    	public String getStringProperty(final String name) {
    		return props.getProperty(name);
    	}
    
    	public int getIntegerProperty(final String name, final int defaultValue) {
    		String prop = props.getProperty(name);
    		if (prop != null) {
    			try {
    				return Integer.parseInt(prop);
    			} catch (final Exception ignored) {
    				return defaultValue;
    			}
    		}
    		return defaultValue;
    	}
    
    	public long getLongProperty(final String name, final long defaultValue) {
    		String prop = props.getProperty(name);
    		if (prop != null) {
    			try {
    				return Long.parseLong(prop);
    			} catch (final Exception ignored) {
    				return defaultValue;
    			}
    		}
    		return defaultValue;
    	}
    
    	public float getFloatProperty(final String name,final float defaultValue)
    	{
    		String prop = props.getProperty(name);
    		if (prop != null) {
    			try {
    				return Float.parseFloat(prop);
    			} catch (final Exception ignored) {
    				return defaultValue;
    			}
    		}
    		return defaultValue;
    	}
    	
    	public String getStringProperty(final String name, final String defaultValue) {
    		final String prop = getStringProperty(name);
    		return (prop == null) ? defaultValue : prop;
    	}
    
    	public boolean getBooleanProperty(final String name) {
    		return getBooleanProperty(name, false);
    	}
    
    	public boolean getBooleanProperty(final String name, final boolean defaultValue) {
    		final String prop = getStringProperty(name);
    		return (prop == null) ? defaultValue : "true".equalsIgnoreCase(prop);
    	}
    	
    	public Set<Object> keySet()
    	{
    		return props.keySet();
    	}
    	
    	public Collection<Object> values()
    	{
    		return props.values();
    	}
    
    }
    

      

  • 相关阅读:
    linux常用命令
    PHP 魔术方法浅谈
    PHP常用的设计模式
    浅谈Restful
    进程,线程与协程的区别
    http与https的
    get与post的区别
    php连接数据库的两种方式
    DRF框架基本组件之过滤,搜索,排序
    DRF-JWT用户认证
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/9237443.html
Copyright © 2020-2023  润新知