1. 程式人生 > >PropertiesUtil 獲取文件屬性值

PropertiesUtil 獲取文件屬性值

cas close IE unable ati getc nal brush object

有時候不要把一些屬性值寫死在代碼中,而是寫在配置在文件中,方便更改

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

}

  

PropertiesUtil 獲取文件屬性值