工具类
import java.io.*;
import java.util.Properties;
import static java.lang.System.in;
import static java.lang.System.out;
public class PropertyUtil {
private static Properties props;
static {
loadProps();
}
synchronized static private void loadProps() {
props = new Properties();
InputStream in = null;
try {
in = PropertyUtil.class.getClassLoader().getResourceAsStream("application.properties");
props.load(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (null != in) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
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);
}
public static void editProperty(String key, String value, String remark){
Properties pro = new Properties();
try{
InputStream in = null;
in = PropertyUtil.class.getClassLoader().getResourceAsStream("application.properties");
pro.load(in);
FileOutputStream out = new FileOutputStream(Thread.currentThread().getContextClassLoader().getResource("application.properties").getPath());
pro.put(key,value);
pro.store(out, remark);
out.flush();
// 重新加载
loadProps();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
out.close();
in.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
复制代码
1.什么是 properties 文件
1、java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,这种文件以 key=value 格式存储内容。
2、Properties 类继承自 Hashtable,是线程安全的,多个线程可以共享单个 properties 对象而无需进行外部同步。
3、一般这个文件作为一些参数的存储,代码就可以灵活一点。通俗点讲就相当于定义一个变量,在这个文件里面定义这些变量的值,在程序里面可以调用这些变量,好处就是,如果程序中的参数值需要变动,直接来改这个.property 文件就可以了,不用在去修改源代码。
2.properties 文件特点
1、键值对格式。
2、“ = ”等号后面,值前面,的空格,会自动忽略掉。
3、值后面的空格,不会忽略。
4、“ = ”等号后面的双引号,不会忽略。
5、“ # ”号后面内容,为注释,忽略。
3.常用方法
1、getProperty(String key):用指定的键在此属性列表中搜索属性。也就是通过参数 key,得到 key 所对应的 value。
2、load(InputStream inStream):从输入流中读取属性列表(键值对)。通过对指定的文件进行装载来获取该文件中的所有键-值对。以供 getProperty(String key)来搜索。
3、setProperty(String key,String value):调用 Hashtable 的方法 put。他通过调用基类的 put 方法来设置键-值对。
4、store(OutputStream out,String comments)以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键-值对写入到指定的文件中去。
5、clear():清除所有装载的键-值对。该方法在基类中提供
————————————————
版权声明:本文为 CSDN 博主「小渣渣学 java」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45925146/article/details/127196794
评论