Java—读取properties配置文件

news2024/11/27 23:39:23

编写配置文件

username=root
password=123456
url=jdbc:mysql://localhost:3306/myDatabase
driverClassName=com.mysql.cj.jdbc.Driver

编写测试类

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;

/**
 * properties配置文件的读取
 */
public class FileProperties {

    public static void main(String[] args) {
        // 配置类对象
        Properties properties = new Properties();
        try (
                // 创建输入流
                FileInputStream fis = new FileInputStream(Thread.currentThread().getContextClassLoader().getResource("jdbc.properties").getPath())
        ) {
            // 加载流文件
            properties.load(fis);

            // 获取配置文件的内容
           /* System.out.println("username: ==>" + properties.getProperty("username"));
            System.out.println("password: ==>" + properties.getProperty("password"));
            System.out.println("url: ==>" + properties.getProperty("url"));
            System.out.println("driverClassName: ==>" + properties.getProperty("driverClassName"));*/

            Enumeration<?> enumeration = properties.propertyNames();
            while (enumeration.hasMoreElements()) {
                String key = (String) enumeration.nextElement();
                String value = properties.getProperty(key);
                System.out.println(key + "==>" + value);
            }

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

结果

使用JDK提供的工具类ResourceBundle(资源绑定类)

import java.util.Enumeration;
import java.util.ResourceBundle;

public class ResourceBundleTest {
    public static void main(String[] args) {
        // 相对路径是类的根目录src,例如:jdbc.properties 的完整路劲=》 src/com/java/study/jdbc.properties
       /*  使用:不需要.properties
            ResourceBundle.getBundle("com.java.study.jdbc");
            ResourceBundle.getBundle("com/java/study/jdbc");
        */

        // 获取资源绑定器对象,这里我的jdbc.properties 就在src下,所以直接写
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");

        // 通过key获取value
        /*System.out.println(bundle.getString("username"));
        System.out.println(bundle.getString("password"));
        System.out.println(bundle.getString("url"));
        System.out.println(bundle.getString("driverClassName"));*/

        Enumeration<String> keys = bundle.getKeys();
        while (keys.hasMoreElements()) {
            String key = keys.nextElement();
            String value = bundle.getString(key);
            System.out.println(key + "=" + value);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1825560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vagrant putty错误的解决

使用Vagrant projects for Oracle products and other examples 新创建的虚机&#xff0c;例如vagrant-projects/OracleLinux/8。 用vagrant ssh可以登录&#xff1a; $ vagrant ssh > vagrant: Getting Proxy Configuration from Host...Welcome to Oracle Linux Server …

专业学习|博弈论-博弈论概述

&#xff08;一&#xff09;认识博弈论&#xff1a;解析复杂决策与策略 &#xff08;1&#xff09;认识博弈 博弈论广泛应用于分析个体间因利益冲突而产生的决策问题。通过构建不同模型来探讨如经贸关系、军事威胁等问题&#xff0c;旨在寻找均衡解并提供新知&#xff0c;相较…

C语言概述与历史

引言 C语言是一门历史悠久且影响深远的编程语言。它不仅为后继的许多编程语言奠定了基础&#xff0c;同时因其高效性和灵活性在系统编程和嵌入式开发领域得到了广泛应用。本篇文章将全面介绍C语言的起源与发展、设计目标与理念&#xff0c;以及C语言的标准演化历程&#xff0c;…

字符数组基础知识及题目

死识。。。 字符该如何存储呢&#xff1f;这一点我们在以前就接触过了。用char来存储。 如何输入一个单词呢&#xff1f; char a[10002]; scanf("%s",a); 就不用地址符了。 如何输入句子呢&#xff1f; char a[100002]; gets(a); gets是读入句子的&#xff0c…

利用智能交流控制设计方法实现更好的家电安全

从机电到数字控制的转变首先是通过现成的电子设备完成的——系统架构是围绕 MCU、分立晶体管和高压双向可控硅构建的。 家用电器的这场小型革命部分是由于减少能源和水的浪费以及提高易用性的需求日益增长而推动的。 随着市场及其标准的化&#xff0c;性能和成本效率一直是家…

用MATLAB绘制地球围绕太远运动而月球围绕地球运动

绘制 MATLAB代码: clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;% 初始化参数 num_frames 1000; % 动画帧数 G200; dt 0.01; % 时间步长% 设置太阳、地球和月球的初始位置和半径 sun_position [0, 0]; earth_radius …

Docker MySQL Shutting down mysqld

6月初至6月15日发现MySQL无故停机多次&#xff0c;导致系统无法使用。接下来各种日志查看&#xff0c;排查原因。先附上一份Docker种MySQL的日志的截图。 一、根据Docker的日志初步估计是数据库内存飙升&#xff0c;从而被系统杀掉进程 查询Linux系统日志&#xff0c;在宿主机…

海康威视-按时间下载录像文件

目录 1、流程图 1.1、录像查找 1.2、录下下载 2、按时间下载 2.1、开启下载 2.2、后台下载 2.2.1、方式一 2.2.2、方式二 3、问题整理 3.1、错误码34 3.2、错误码10 3.3、下载的文件大小为0kb 4、错误码 由于没有在官方文档中找到通过ISAPI协议透传实现按时间下…

---String类---

在c语言中要使用字符串&#xff0c;只能通过字符指针或者字符数组&#xff0c;然后再通过函数进行各种操作&#xff0c;这种将变量和变量方法分开的方式显然不符合面向对象的编程&#xff0c;所以java中添加了String这个类 String类构造 而对于string有很多的方法 字符串长度…

DataFrames相关介绍文件读取

目录 1.初识DataFrame 2.DataFrame的构造函数 3.数据框的轴 4.CSV文件读取 5.Excel文件读取 1.初识DataFrame &#xff08;1&#xff09;昨天&#xff0c;我们学习了Series。而Pandas的另一种数据类型&#xff1a;DataFrame&#xff0c;在许多特性上和Series有相似之处。 …

Python虚拟环境的配置

前言&#xff1a; 本人一度被Python的虚拟环境的配置所困扰&#xff0c;前段时间抽空学习了一下&#xff0c;现在总结一下方法&#xff0c;供大家参考。 先使用winr打开命令行窗口。 展示所有虚拟环境 conda env list 创建虚拟环境 例如我们创建一个叫做py_sk的虚拟环境 …

JProfiler 性能分析案列——dump.hprof 堆内存快照文件分析排查内存溢出

在 windows 环境下实现。 一、配置 JVM 参数 配置两个 JVM 参数&#xff1a; -XX:HeapDumpOnOutOfMemoryError&#xff0c;配置这个参数&#xff0c;会在发生内存溢出时 dump 生成内存快照文件&#xff08;xxx.hprof&#xff09;-XX:HeapDumpPathF:\logs&#xff0c;指定生成…

SQLServer使用 PIVOT 和 UNPIVOT行列转换

在SQL Server中&#xff0c;PIVOT是一个用于将行数据转换为列数据的操作。它特别适用于将多个行中的值转换为多个列的情况&#xff0c;并在此过程中执行聚合操作。以下是关于SQL Server中PIVOT操作的详细解释和示例&#xff1a; 1、本文内容 概述语法备注关键点简单 PIVOT 示…

拒绝Token焦虑,盘点可白嫖的6款LLM大语言模型API~

上篇分享了如何从0到1搭建一套语音交互系统。 其中&#xff0c;大语言模型&#xff08;LLM&#xff09;是实现智能对话的关键所在。 很多小伙伴反应&#xff1a;本地部署 LLM 还是有门槛&#xff0c;本文将系统盘点&#xff1a;目前市面上都有哪些可以免费调用的云端API&…

华为云开发者社区活动-基于MindNLP的ChatGLM-6B聊天机器人体验

MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。支持流式回复。 本活动通过配置环境&#xff0c;模型接入&#xff0c;以及gradio前端界面搭建&#xff0c;实现了聊天机器人的功能。 以下是一些体验记录&#xff1a; 有兴趣的可以通过以下链…

平台型组织的战略及OKR

本文主要探讨了在平台型组织中战略和OKR&#xff08;目标与关键结果&#xff09;的应用&#xff0c;以及如何在不同的组织架构中有效制定和执行战略。原文: Strategy and OKRs in the Platform Organization 战略&#xff1a;重要的承诺、复杂的过程 对于什么是组织的战略&…

PS通过GTX实现SFP网络通信1

将 PS ENET1 的 GMII 接口和 MDIO 接口 通过 EMIO 方 式引出。在 PL 端将引出的 GMII 接口和 MDIO 接口与 IP 核 1G/2.5G Ethernet PCS/PMA or SGMII 连接&#xff0c; 1G/2.5G Ethernet PCS/PMA or SGMII 通过高速串行收发器 GTX 与 MIZ7035/7100 开发…

openh264 帧内预测编码原理:WelsMdIntraChroma 函数

帧内色度预测编码 帧内预测的目的是利用图像中相邻像素的亮度和色度值之间的接近性来进行压缩。在H.264中&#xff0c;帧内预测包括亮度和色度的预测。色度预测模式通常是基于亮度预测模式来确定的&#xff0c;因为色度分量通常具有更高的空间冗余度。色度预测模式的选择可以基…

汽车级TPSI2140QDWQRQ1隔离式固态继电器,TMUX6136PWR、TMUX1109PWR、TMUX1133PWR模拟开关与多路复用器(参数)

1、TPSI2140-Q1 是一款隔离式固态继电器&#xff0c;专为高电压汽车和工业应用而设计。 TPSI2140-Q1 与 TI 具有高可靠性的电容隔离技术和内部背对背 MOSFET 整合在一起&#xff0c;形成了一款完全集成式解决方案&#xff0c;无需次级侧电源。 该器件的初级侧仅由 9mA 的输入电…

Blender帧动画

时间线窗口Timeline用于定义帧动画 -视图&#xff1a;方法&#xff0c;平移&#xff0c;框显全部 -帧范围&#xff1a;可以调整动画共多少帧 -当前帧&#xff1a;可以拖动或手工指定 默认每秒24帧 定义一个帧动画类似unity的Timeline&#xff0c;只需定义关键帧&#xff0c…