多文件
package tools;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.Properties;
/**
* 获取properties文件属性值
* 适用于多文件
* @author Administrator
*
*/
public class PropertiesUtils {
private static String defaultPropertiesFileName = "default.properties";
private static Hashtable<String, Properties> pptContainer = new Hashtable<String, Properties>();
/**
* 获取默认properties文件指定key的属性值
*
* @param key
* @return
*/
public final static String getProperty(String key) {
Properties ppts = getProperties(defaultPropertiesFileName);
return ppts == null ? null : ppts.getProperty(key);
}
/**
* 获取指定properties文件的指定key的属性值
*
* @param key
* @param propertyFilePath
* @return
*/
public final static String getProperty(String key, String propertyFilePath) {
Properties ppts = getProperties(propertyFilePath);
return ppts == null ? null : ppts.getProperty(key);
}
/**
* 获取properties文件所有的属性值
*
* @param propertyFilePath
* @return
*/
public final static Properties getProperties(String propertyFilePath) {
if (propertyFilePath == null) {
return null;
}
Properties ppts = pptContainer.get(propertyFilePath);
if (ppts == null) {
ppts = loadPropertyFile(propertyFilePath);
if (ppts != null) {
pptContainer.put(propertyFilePath, ppts);
}
}
return ppts;
}
/**
* 从src根目录下加载properties文件
*
* @param propertyFilePath
* @return
*/
private static Properties loadPropertyFile(String propertyFilePath) {
InputStream is = PropertiesUtils.class.getClassLoader()
.getResourceAsStream(propertyFilePath);
if (is == null) {
return loadPropertyFileByFileSystem(propertyFilePath);
}
Properties ppts = new Properties();
try {
ppts.load(is);
return ppts;
} catch (Exception e) {
return null;
}
}
/**
* 从文件系统加载properties文件
*
* @param propertyFilePath
* @return
*/
private static Properties loadPropertyFileByFileSystem(
final String propertyFilePath) {
try {
Properties ppts = new Properties();
ppts.load(new java.io.FileInputStream(propertyFilePath));
return ppts;
} catch (java.io.FileNotFoundException e) {
return null;
} catch (java.io.IOException e) {
return null;
}
}
}
单文件
package tools;
import java.io.InputStream;
import java.util.Properties;
/**
* 获取properties文件属性值
* 适用于单文件
* @author Administrator
*
*/
public class PropertiesUtils {
public static void main(String[] args) {
System.out.println(getProperty("name"));
}
private static String defaultPropertiesFileName = "default.properties";
private static Properties ppts = new Properties();
/**
* 获取properties文件指定key的属性值
*
* @param key
* @return
*/
public final static String getProperty(String key) {
Properties ppts = getProperties(defaultPropertiesFileName);
return ppts == null ? null : ppts.getProperty(key);
}
/**
* 获取properties文件所有的属性值
*
* @param propertyFilePath
* @return
*/
public final static Properties getProperties(String propertyFilePath) {
if (propertyFilePath == null) {
return null;
}
if (ppts == null || ppts.size() == 0) {
ppts = loadPropertyFile(propertyFilePath);
}
return ppts;
}
/**
* 从src根目录下加载properties文件
*
* @param propertyFilePath
* @return
*/
private static Properties loadPropertyFile(String propertyFilePath) {
InputStream is = PropertiesUtils.class.getClassLoader()
.getResourceAsStream(propertyFilePath);
if (is == null) {
return null;
}
Properties ppts = new Properties();
try {
ppts.load(is);
return ppts;
} catch (Exception e) {
return null;
}
}
}