服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java如何读写Properties配置文件(Properties类)

Java如何读写Properties配置文件(Properties类)

2023-05-13 01:04未知服务器之家 Java教程

目录 Java读写Properties配置文件 Properties基本介绍 Properties常用方法 Properties读取配置文件 Properties写入配置文件 properties文件的读取和写入 properties文件的读取 properties文件的写入 总结 Java读写Properties配置文件 Properties基本介绍 专门用

目录
  • Java读写Properties配置文件
    • Properties基本介绍
    • Properties常用方法
    • Properties读取配置文件
    • Properties写入配置文件
  • properties文件的读取和写入
    • properties文件的读取
    • properties文件的写入
  • 总结

    Java读写Properties配置文件

    Properties基本介绍

    专门用来读写配置文件的集合类,Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串。

    属性列表可以包含另一个属性列表作为其“默认值”; 如果在原始属性列表中找不到属性键,则会搜索此第二个属性列表。

    因为Properties从继承Hashtable时, putputAll方法可应用于Properties对象。 强烈不鼓励使用它们,因为它们允许调用者插入其键或值不是Strings 。 应该使用setProperty方法。

    如果storesave方法在包含非String键或值的“受损害” Properties对象上调用,则调用将失败。

    类似地,如果在包含非String密钥的“受损害” Properties对象上调用propertyNames或list方法的调用将失败。

    配置文件的格式:键 = 值(key = value)

    PS:键值对不需要有空格,值不需要用引号包起来。默认类型为String

    properties是配置文件。

    主要的作用是通过修改配置文件可以方便地修改代码中的参数,实现不用改class文件即可灵活变更参数。

    解释:java运行中java文件会变成class文件,之后无法通过反编译找到原样的代码,这样的话,如果java类中某个参数变更,就很难灵活的实现参数修改,这个时候properties 文件就能很灵活的实现配置,减少代码的维护成本和提高开发效率。

    Properties常用方法

    • load()//加载配置文件的键值对到Properties对象中
    • list()//将数据显示到指定位置
    • getProperty(key)//根据键获取值
    • setProperty(key,value)//设置键值对到Properties对象中
    • store()//将Properties中的键值对存储到配置文件之后,在idea中,保存信息到配置文件,如果含有中文,会存储为unicode码
    • loadFromXML(InputStream)storeToXML(OutputStream, String, String)//方法以简单的XML格式加载和存储属性。 默认情况下,使用UTF-8字符编码,但是如果需要,可以指定特定编码。 需要实现支持UTF-8和UTF-16,并可能支持其他编码。

    XML属性文档具有以下DOCTYPE声明:

    Properties读取配置文件

    使用Properties类来读取test.properties文件

    • 1.创建Properties对象
    • 2.加载指定配置文件
    • 3.把键值对(k=v)显示在控制台
    • 4.根据key获取对应的value值
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Properties;
    public class Test01 {
        public static void main(String[] args) throws IOException {
            //创建Properties对象
            Properties properties = new Properties();
            //加载配置文件
            properties.load(new FileReader("E:\\Java_基础\\code\\IO流\\src\\test.properties"));
            //将内容显示在控制台
            properties.list(System.out);
            //通过key获取value
            String user = properties.getProperty("user");
            String password = properties.getProperty("password");
            System.out.println("用户名:"+user);
            System.out.println("密码:"+password);
        }
    }

    Java如何读写Properties配置文件(Properties类)

    Java如何读写Properties配置文件(Properties类)

    properties文件的读取和写入

    properties文件是一种属性文件,这种文件以key=value(键值对)格式存储内容。Java中可以使用Properties类来读取这个文件,使用Properties类中的getProperties(key)方法来得到对应的数据。

    一般properties文件作为一些参数的存储,使得代码更加灵活。

    properties文件的读取

    (1)使用BufferedInputStream(缓冲输入流)创建输入流进行读取,读取后以key=value(键值对)格式存储数据。

    代码实现:

     //Properties格式文件的读取
        //创建输入流
        try (
         BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\student\\aaa.properties"))) {
            int data =-1;
            while((data=bis.read())!=-1) {
                System.out.print((char)data);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //运行结果
        //k=12
        //b=34
        //c=11

    (2)使用Properties类中的load()方法读取,将“输入流”加载到Properties集合对象中,根据key来获取value的值

    代码实现:

    try (
         BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\student\\aaa.properties"))) {
            Properties props=new Properties();
              props.load(bis);//将“输入流”加载到Properties集合对象中
                   //根据key,获取value
                    System.out.println(props.get("k"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //运行结果
        //12

    properties文件的写入

    因为properties文件数据是以集合形式存储,所以可以用put()方法将KV键值对存入Properties集合中,再通过输出流使用store()方法将集合中的临时数据,持久化写入硬盘中存储。

    //properties格式文件的写入
        try{
            Properties props=new Properties();
            props.put("Q", "123");
            props.put("W", "432");
            props.put("E", "986");
            props.put("R", "457");
        //使用“输出流”,将properties集合中的KV键值对,写入*.properties文件
          try (BufferedOutputStream bos = new BufferedOutputStream(
                new FileOutputStream("D:\\student\\bbb.properties"))) {
            props.store(bos, "just do IT");
          }
        } catch (IOException e) {
            e.printStackTrace();
        }
    //运行结果
    //    #just do IT
    //    #Wed Jun 01 00:14:57 CST 2022
    //    W=432
    //    R=457
    //    Q=123
    //    E=986

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    原文地址:https://blog.csdn.net/weixin_47383392/article/details/124446239

    延伸 · 阅读

    精彩推荐