?
有時候不要把一些屬性值寫死在代碼中,而是寫在配置在文件中,方便更改
?
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();}}
?