写点什么

java 本地应用程序加载与修改 properties 配置文件

作者:JefferLiu
  • 2023-01-16
    辽宁
  • 本文字数:1798 字

    阅读完需:约 6 分钟

工具类


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

用户头像

JefferLiu

关注

复杂的东西简单讲,简单的东西深刻讲。 2018-08-21 加入

已昏懒人

评论

发布
暂无评论
java 本地应用程序加载与修改properties配置文件_JefferLiu_InfoQ写作社区