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();
	}

}

  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值