Properties :
import lombok.extern.slf4j.Slf4j;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
@Slf4j
public class PropertyUtil {
// 将要读取的properties的文件名
private static String propertiesFileName = "test.properties";
private static Properties props = new Properties();
static {
log.info("执行静态代码块loadProps(),保存在jvm中,避免多次执行。");
loadProps();
}
synchronized static private void loadProps() {
log.info("开始加载properties文件内容.......");
InputStream in = null;
try {
// 第一种,通过类加载器进行获取properties文件流,路径为相对路径
in = PropertyUtil.class.getClassLoader().getResourceAsStream(propertiesFileName);
// 第二种,通过类进行获取properties文件流
//in = PropertyUtil.class.getResourceAsStream("propertiesFileName");
props.load(in);
} catch (FileNotFoundException e) {
log.error("properties文件未找到");
} catch (IOException e) {
log.error("出现IOException");
} finally {
try {
if (null != in) {
in.close();
}
} catch (IOException e) {
log.error("properties文件流关闭出现异常");
}
}
log.info("加载properties文件内容完成...........");
}
public static String getProperty(String key) {
if (null == props) {
loadProps();
}
return props.getProperty(key);
}
public static String getProperty(String key, String defaultValue) {
if (null == props) {
loadProps();
}
return props.getProperty(key, defaultValue);
}
}
ResourceBundle:
import lombok.extern.slf4j.Slf4j;
import java.util.ResourceBundle;
@Slf4j
public class ResourceBundleUtil {
// 这里不需要写*.properies后缀,如果文件定义在包中,前面需要加上包名称,如com.tet.message
private static String fileName = "test";
private static ResourceBundle resourceBundle = null;
static {
log.info("执行静态代码块loadResource(),保存在jvm中,避免多次执行。");
loadResource();
}
synchronized static private void loadResource() {
try {
resourceBundle = ResourceBundle.getBundle(fileName);
}catch (Exception e){
log.error("加载配置文件出错", e);
}
}
public static String getProperty(String key) {
if (null == resourceBundle) {
loadResource();
}
return resourceBundle.getString(key);
}
}