JavaNote 4.7 读取配置文件的多种方式

IGBT模块封装中的银烧结技术:为什么特斯拉和比亚迪都在用这种黑科技? 本文深入解析了IGBT模块封装中的银烧结技术,揭示了其作为功率半导体封装工艺关键升级的原因。该技术通过低温烧结形成高熔点、高导热导电的银连接层,显著提升了模块的功率循环寿命、散热能力和高温工作稳定性,这正是特斯拉、比亚迪等行业巨头采用此项黑科技以释放电动汽车电驱系统极致性能的核心所在。 阅读详情

一、code

package com.test;


import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.builder.fluent.Configurations;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.springframework.core.io.support.PropertiesLoaderUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

public class Test {
    public static void main(String args[]){
        Test test = new Test();
        test.method1();
        test.method2();
        test.method3();
        test.method4();
        test.method5();
        test.method6();

    }
    public void method1(){
        Properties properties = new Properties();
        /*
        * InputStream inputStream = Test.class.getResourceAsStream("/db.properties");
        * InputStream inputStream1 = Test.class.getClassLoader().getResourceAsStream("db.properties");
        * 上面两种方式可以达到一样的效果*/
        InputStream inputStream = ClassLoader.getSystemResourceAsStream("db.properties");
        try{
            /*new Exception().getStackTrace()[0].getMethodName() 输出本方法名,返回值String
            new Exception().getStackTrace()[0].getMethodName() 输出调用者的方法名,返回值String
            * */
            properties.load(inputStream);
            System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; " + "root:" + " " +  properties.getProperty("root"));
        }
        catch(IOException e){
            e.getMessage();
        }
    }
    public void method2(){
        Properties properties = new Properties();
        try {
            //通过Spring的PropertiesLoaderUtils.loadAllProperties载入配置文件
            properties = PropertiesLoaderUtils.loadAllProperties("db.properties");
            System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "password:" + " " + properties.getProperty("password"));
        }
        catch (IOException e){
            e.getMessage();
        }
    }
    public void method3(){
        Properties properties = new Properties();
        try {
            //通过IO输入流载入配置
            InputStream inStream = new FileInputStream(new File("src\\main\\resources\\db.properties"));
            properties.load(inStream);
            System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "root:" + " " + properties.getProperty("root"));
        }
        catch (IOException e){
            e.getMessage();
        }
    }
    public void method4(){
        Properties properties = new Properties();
        try {
            /*
            UrlResource urlResource = new UrlResource("file:target/classes/db.properties");
            InputStream inStream = urlResource.getInputStream();
            properties.load(inStream);
            System.out.println(properties.getProperty("password"));
*/
            //通过URL读取配置文件,和上面的UrlResource达到的效果一致
            URL url = new URL("file:src\\main\\resources\\db.properties");
            InputStream inStream1 = url.openStream();
            properties.load(inStream1);
            System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "root:" + " " + properties.getProperty("root"));

        }
        catch (MalformedURLException e){
            e.getMessage();
        }
        catch (IOException e){
            e.getMessage();
        }
    }
    public void method5(){
        //通过java.util.ResourceBundle类加载配置文件,ResourceBundle.getBundle("db")中没有使用配置文件后缀名
        ResourceBundle resource = ResourceBundle.getBundle("db");
        System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "root:" + " " +resource.getString("root") );
       //使用输入流方式载入配置文件
        InputStream inputStream1 = Test.class.getClassLoader().getResourceAsStream("db.properties");
        try {
            ResourceBundle resource1 = new PropertyResourceBundle(inputStream1);
            System.out.println("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "password:" + " " +resource1.getString("password")+"2");
        }
        catch (IOException e){
            e.getMessage();
        }
    }
    public void method6(){
        Configurations configs = new Configurations();
        /*
        * 需要用到的commons-configuration2版本为2.0及以上,还需要用到commons-beanutils依赖包
        */
        try {
            Configuration config = configs.properties(new File("db.properties"));
            System.out.print("methodName:" + new Exception().getStackTrace()[0].getMethodName() + " ; "+ "root:" + " " +config.getString("root") );

        }
        catch (ConfigurationException e){
            e.getMessage();
        }
    }
}

二、输出截图

三、第六种方法的依赖包

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-configuration2</artifactId>
  <version>2.3</version>
</dependency>
<dependency>
  <groupId>commons-beanutils</groupId>
  <artifactId>commons-beanutils</artifactId>
  <version>1.9.3</version>
</dependency>
WorkBench3.2 + VxWorks6.8安装教程 按照FTP连接主机和目标机,将整个VxWorks6.8的安装分为两个部分,一是在主机(win10系统,可以使用虚拟机或者实体机,推荐使用虚拟机)上安装workbench3.2,进行bootrom与VxWroks映像文件的生成,二是在虚拟机上安装VxWorks系统 19.10.10 首先很高兴文章能帮到大家,但由于本人已不做该方向良久,私信和评论的很多问题现在已经无法解答,如果大家有什么问题欢迎... 阅读详情

相关推荐

给宇树Go2机器人装‘眼睛’:在Jetson Orin Nano上从零部署YOLOv5的保姆级避坑实录

本文详细介绍了在Jetson Orin Nano上为宇树Go2机器人部署YOLOv5视觉系统的完整流程,涵盖硬件选型、环境配置、模型优化及系统集成等关键步骤。针对机器人应用场景特有的离线部署、版本冲突和实时推理等挑战,提供了实用的解决方案和性能优化技巧,帮助开发者快速实现机器人的视觉能力升级。

weixin_29169505的博客 378

spring-boot:apache commons-configuration2 异常:java.lang.IllegalArgumentException: name原因分析

最近在设计一个spring-boot项目,使用apache的commons.configuration2来管理用户配置参数文件,在命令行执行spring-boot插件生成的Fat-Jar包时,org.apache.commons.configuration2抛出了如下的异常java.lang.IllegalArgumentException: name 经反复分析,发现这是由于spring-boot的LaunchedURLClassLoader.findResoure在找不到资源时抛出异常所致

10km的专栏 4403

SAP 财务快速记账之--科目分配模型(Account assignment model )

SAP FICO 运维解决方案

lijinbao171022的博客 1764

java 读取cfg_【Java】读取/加载 配置文件的几种方法

说明在java项目中经常会使用到配置文件,这里就介绍几种加载配置文件的方法目录结构我是使用的maven搭建的项目,resources其实就是在根目录下配置文件很简单一、 基于ClassLoader读取配置文件注意:有局限性 只能在类路径下比较方便Properties properties = new Properties();// 注意这里的路径是根据根目录写的InputStream in = R...

weixin_34660766的博客 1402

Homebrew高效升级与国内镜像源配置全攻略

本文详细介绍了如何通过配置国内镜像源(如清华、中科大、阿里云)来高效升级Homebrew,解决国内开发者访问GitHub仓库速度慢的问题。文章提供了从基础配置到永久生效的完整教程,包括常见问题解决和进阶技巧,帮助开发者大幅提升软件包管理效率。

weixin_28835551的博客 416

Verilog仿真时读取bin文件模拟输入数据流,将输出数据流写入bin文件

需要关注的是,一般会省略文件起始地址和读取长度,那么mem为多大,就会从文件中读取多大的数据出来填充mem。如果只需要读取一次文件,那么代码到此就结束了,但是如果还需要每一帧都读取该文件转换为数据流,则在循环里判断新的一帧信号是否到来,在新的一帧再次打开一次文件,从头开始读取数据。

qq_41137205的博客 2772

JavaNote 3.8 循环读取Excel两行数据

一、自动化测试中经常用到参数化,需要循环读取两行Excel的单元格值,这里返回的是Map package com.test; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.log4j.Logger;...

LetsStudy的博客 432

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4489

JavaNote 4.3 Cookie

一、cookie name:Cookie的名称; value:Cookie的值; comment:Cookie的注释; domain:可以看到Cookie的域; maxAge:Cookie的失效时间;正值表示Cookie会在指定的时间后过期,负值表示浏览器关闭的时候过期,0会导致Cookie被删除; path:可以看到Cookie的URL; secure:是否需要使用安全连接来传输; versi...

LetsStudy的博客 250

卫朋:IPD流程落地——产品计划阶段拆解

IPD计划阶段拆解

产品线负责人 954

【WRF模拟】保存wrf输出文件到指定目录+仅输出指定空间域/变量文件

修改wrf命令以更改指定输出文件目录等

WW、forever的博客 543

JAVANOTE

1.Eclipse下 包名为 java时会出问题,但Java不会出问题,我断定原因与 类的后缀 为java(不是大写的Java)有关  2.Acm交Java题时 包含主函数的类要命名为 Main  3. 类里的成员变量 private a = 1; private b = 2; 这样的话将在构造函数里的第一行代码执行之前为他们(a,b)赋值。(若不写默认为0)  

十二月咖啡馆工作室 1438

【WRF湿度调整策略】WRF/ERA5湿度数据对比

【WRF湿度调整策略】WRF/ERA5湿度数据对比

WW、forever的博客 117

JavaNote 4.1 Servlet实现下载示例

1、示例 package com.test; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import ja...

LetsStudy的博客 197

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaNote 4.6 session中实现简单购物车功能

一、添加商品 package com.session; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; import java.util.ArrayList; i...

LetsStudy的博客 270

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JavaNote 4.4 servlet实现记录网站上次访问时间

一、servlet package com.cookie; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import java...

LetsStudy的博客 282

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JavaNote 3.6 POI处理Excel文件

一、Java代码 package com.test; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.log4j.Logger; import org.apache.log4j.PropertyCo...

LetsStudy的博客 349

JavaNote_1.0.4_对象序列化

Java中的序列化是指将一个Java对象“转换”为一串连续的byte字节(字节数组或者流),以便写入文件或者通过socket(套接字)发送出去。这一串字节码包括了对象的数据,以及其成员变量的类型信息(元信息)等。反序列化:将文件或者socket中读取字节,还原回Java对象。我们可以设计一种对象序列化的ObjectSerializer接口。链接。

h201601060805的博客 699

JavaNote 文件系统及Java文件基本操作

文件概述文件系统是由OS(操作系统)管理的;文件系统和Java进程是平行的,是两套系统;文件系统是由文件夹和文件递归组合而成;文件目录分隔符Linux/Unix 用/隔开Windows用\隔开,涉及到转义,在程序中需用/或\代替文件包括文件里面的内容和文件基本属性文件基本属性:名称、大小、扩展名、修改时间等Java文件类Filejava.io.File是文件和目录的重要类 目录也是用File类进行...

weixin_43837475的博客 197

从Applet中读取Cookie Access Cookies from a Java Applet

从Applet中读取Cookie Access Cookies from a Java Applet

fdyufgf的博客 169

从Applet中读取Cookie:Access Cookies from a Java Applet

来源:http://www.rgagnon.com/javadetails/java-0180.html Access Cookies from a Java Applet This Applet uses the package netscape.javascript.JSObject. To compile such program, you have to include in the...

JAVA天地 91

使用java代码拷贝目录

关于如何使用java代码拷贝目录,可能还存在bug 整体使用了递归进行遍历所有的目录并创建 至于为什么选择FileInputStream这个类,是因为我们目录中不止有普通文件,所以不选择FileReader import java.io.*; public class HomeWork_Copy { public static void main(String[] args) throws Exception { // 目的, 将D盘下的JavaNote文件移到C盘下

SMASENEN的博客 272

JavaNote 1.2数组

一、数组 1、数组的初始化 动态初始化 Date date[]; date = newDate[3]; 静态初始化 Date date[] ={;;;}; Date date[]={new Date();;}; 2、数组的遍历 int[] array = {2,1,3,4,5,6}; for(int i = 0; i System.out.prin

LetsStudy的博客 412

JavaNote 1.7final、finally、访问权限

一、final 二、finally 三、访问权限

LetsStudy的博客 398

JavaNote 2.3枚举、分支、循环

一、枚举

LetsStudy的博客 394
上一篇: 10、postman中脚本的运用:chai.js
下一篇: 11、引入com.google.inject包无法调用webdriver浏览器问题
LetsStudy
博客等级 码龄9年 96粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值