Java---Properties 类

基本介绍

Properties 是 Java 提供的一个专门用于读取和写入配置文件 的类,继承自 Hashtable ,常用于存储 String-String 类型的键值对,例如数据库连接信息、应用程序参数等。

核心特性

  • 支持从文件、classpath、内存流等多种来源加载配置。

  • 提供 load() / store() 方法方便读写 .properties 文件。

  • 可通过 getProperty() 获取值,支持默认值返回。

  • 从 JDK9 开始 .properties 文件可直接使用 UTF-8 编码。

1)专门用于读写配置文件的集合类

配置文件的格式:

键 = 值

键 = 值

2)注意:键值对不需要有空格,值不需要用引号包起来,默认类型是 String

常见方法

  • load:加载配置文件的键值对到 Properties 对象
  • list:将数据显示到指定设备
  • getProperty(key):根据键获取值
  • setProperty(key,value):设置键值对到 Properties 对象
  • store:将 P roperties 中的键值对存储到配置文件,在 idea 中,保存信息到配置文件,如果含有中文,会存储为 unicode 码

应用案例

1.使用 Properties 类完成对 mysql.properties 的读取

java 复制代码
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class properties02 {
    public static void main(String[] args) throws IOException {

        // 1.使用 Properties 类完成对 mysql.properties 的读取

        // 创建 Properties 对象
        Properties pt = new Properties();

        // 加载文件中的键值对数据到 Properties 对象中
        pt.load(new FileReader("src/mysql.properties"));

        // 把 k-v (键值对) 显示到控制台
        pt.list(System.out);

        // 根据指定的 key 获取对应的 value
        String user = pt.getProperty("user");
        String pwd = pt.getProperty("password");
        System.out.println("user = " + user );
        System.out.println("pwd = " + pwd );

    }
}

2.使用 Properties 类添加 key - val 到新文件 mysql2.properties 中

java 复制代码
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class Properties03 {
    public static void main(String[] args) throws IOException {
        // 使用 Properties 类来创建 配置文件,修改配置文件内容
        Properties p1 = new Properties();

        // 创建文件
        p1.setProperty("charset","utf-8");
        p1.setProperty("user","汤姆"); // 注意,这里是保存中文的 Unicode码
        p1.setProperty("pwd","abc1111");

        // 将 k-v 存储到文件中
        // null 的位置表示注解
        p1.store(new FileWriter("src\\mysql2.properties"),null);
        System.out.println("保存配置文件完成...");
    }
}
相关推荐
未秃头的程序猿4 分钟前
虚拟线程上线一周后翻车了——pinning问题排查实录
java·后端·架构
wuminyu7 分钟前
JDK21解决虚拟线程IO阻塞原理剖析
java·linux·c语言·jvm·c++
带刺的坐椅13 分钟前
Solon AOT & Native:三段式编译,从 Java 到原生可执行文件
java·aot·solon·native
程序员良辰20 分钟前
【TongWeb8】使用 Crontab 定时重启和检测 TongWeb 服务
java·中间件·tomcat
菜冻鱼36 分钟前
Python-sklearn-特征工程
开发语言·人工智能·python·机器学习·numpy·matplotlib·sklearn
SL_staff1 小时前
JVS数字底座实践:如何复用企业文档能力快速构建知识类应用
java·数据库·程序员
sugar__salt1 小时前
MyBatis ③动态 SQL 完全指南 —— 从条件拼接到批量操作
java·sql·mybatis
吴声子夜歌1 小时前
正则指引——PHP
开发语言·正则表达式·php
吃饱了得干活1 小时前
Java并发安全:看这一篇就懂了!
java·后端·面试
前端双越老师1 小时前
前端学习 Java 其实很容易:TS 和 Java 语法的 N 个相同点
java·全栈