首页 > 其他分享 >三种读取配置文件的方式

三种读取配置文件的方式

时间:2024-11-11 17:19:47浏览次数:3  
标签:文件 读取 配置文件 class 三种 properties 加载

    在编写JDBC的util包以读取文件时,配置文件的位置会影响其读取方式。当前,默认配置文件直接放置在src文件夹下。

当读取.properties文件代码写法为:

Properties props = new Properties();

props.load(new FileInputStream("db.properties")); 

系统出现报错找不到文件,说明是路径出现了问题,可以使用System.getProperty("user.dir")查看当前进程的目录。

System.getProperty("user.dir") 是Java中的一个方法调用,用于获取当前Java进程的启动目录。这个方法属于java.lang.System类,它允许程序访问系统属性。

 发现位置处于总目录下。于是继续将properties文件移到目录文件夹下运行,发现可以运行。

直接将配置文件放在总目录下,那么在编译过程中,这些配置文件通常不会被复制到out文件夹。那么在后续的项目打包阶段,这些文件就不会被包含在最终的打包文件中。这会导致在部署和运行应用程序时,因为找不到配置文件而出现错误或异常!因此还是建议配置文件放在编译的字节码文件目录下。


既然如此就得改变文件的读取方式:通过字节码的路径寻找文件。

类名.class.getResourceAsStream()

类名.class.getResourceAsStream() 是一种用于从类路径中加载资源文件(如配置文件、图片、属性文件等)的方法。这个方法是 Class 类的一部分,它允许你通过资源的相对路径或绝对路径来获取一个输入流(InputStream,然后你可以读取这个输入流以访问资源文件的内容。 

该方法要求文件与类在同一个目录!!

将properties文件放在与类同一个文件夹下,代码为:

Properties props = new Properties();

props.load(utilTest.class.getResourceAsStream("db.properties"));

 最终结果也能读取到文件,但是,配置文件与类放在同一个目录下的写法不太规范。


类名.class.getClassLoader()

 类名.class.getClassLoader()是一个用于获取某个类的类加载器的方法。   

    类加载器是Java虚拟机的一部分,负责在运行时动态地将类文件(通常是.class文件)加载到JVM中,并将其转换为类对象,以便程序可以引用和使用这些类。类加载器是Java实现动态加载、链接和初始化类的一种机制。 

该方法要求配置文件在项目目录下!

最终代码为:

props.load(jdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));

 

标签:文件,读取,配置文件,class,三种,properties,加载
From: https://blog.csdn.net/m0_74386799/article/details/143685895

相关文章

  • ENVI55扩展工具: MODIS Gap-Filled 数据读取工具
    1工具介绍工具支持ENVI5.5及以上版本。大部分MODIS产品数据均可使用MCTK工具打开和处理。但是最近在使用MODISGap-Filled数据时,发现MCTK工具并不支持,会弹出如下提示。 MODISGap-Filled数据通常为年合成产品,例如MOD17A3HGF为年合成植被净初级生产力和总初级......
  • 鸿蒙开发,arkts 如何读取普通文件
    ArkTS提供了渲染控制的能力,包括条件渲染、循环渲染和数据懒加载等。这些渲染控制语句可以辅助UI的构建,提高应用的性能和用户体验。今天给大家分享arkts如何读取普通文件知识,如果有所帮助,大家点点关注支持一下,也可以联系上我一起学习。在ArkTS中读取普通文件可以通过以下......
  • python如何读取json文件
    在Python中读取JSON文件通常使用json模块,这是Python标准库的一部分,不需要额外安装。以下是读取JSON文件的基本步骤:打开JSON文件。使用json.load()函数将文件内容解析为Python对象(通常是字典或列表)。关闭文件。下面是一个具体的例子:pythonimportjson打开JSON文件withop......
  • STM32CubeMX:使用DAC输出正弦波的三种方法(while,定时器中断,DMA)
    1.DAC概念简介:DAC的工作原理是根据数字输入信号的数值,生成相应的模拟输出电压或电流。它通常接收一个二进制数字输入,该数字代表了一个特定的数值范围。DAC通过将这个数字值转换为模拟信号的电压或电流水平来输出。(功能与ADC相反)2.正弦波输出方式1:简单粗暴while循环输出Cub......
  • Tomcat配置文件详解
    Tomcat配置文件详解这段XML配置文件是ApacheTomcat服务器的配置文件server.xml的一部分,它定义了Tomcat服务器如何运行,包括监听端口、连接器设置、服务组件、全局命名资源以及引擎和主机配置等。下面是对主要元素的详细解释:<Server>标签这是整个配置文件的根标签,包含了服务器......
  • 人工智能模型训练:从不同格式文件中读取训练数据集
    上一篇:《研发LLM模型,如何用数值表示人类自然语言?》序言:人工智能数据工程师在采集数据时往往会使用不同的工具,因此最终得到的原始数据结构各不相同。市场上已知的数据采集和分析工具所输出的文件格式大致有几种。前面我们介绍了如何从谷歌的TFDS中提取支持的格式数据,今天将为大家......
  • hive的三种交互方式
    一、shell交互Hive,用命令hive启动一个hive的shell命令行,在命令行中输入sql或者命令来和Hive交互首先在主节点上启动Hadoop集群,再启动hive元数据服务启动hadoopstart-all.sh启动hive元数据服务nohuphive--servicemetastore>>/usr/local/soft/hive-3.1.2/startl......
  • 基于proteus仿真实现的DS18B20温度传感器读取温度+lcd1602显示,附代码+仿真图
    #include"reg51.h"#include"absacc.h"#include"string.h"#defineucharunsignedchar#defineuintunsignedintuinttem=0;sbitRS=P2^5;sbitRW=P2^6;sbitE=P2^7;sbitDQ=P1^0;ucharstr0[]={"not,"};uchar......
  • Stable Diffusion本地化部署超详细教程(手动+自动+整合包三种方式)
    一、StableDiffusion简介2022年作为AIGC(ArtificialIntelligenceGeneratedContent)时代的元年,各个领域的AIGC技术都有一个迅猛的发展,给工业界、学术界、投资界甚至竞赛界都注入了新的“AI活力”与“AI势能”。其中在AI绘画领域,StableDiffusion当仁不让地成为了开源社......
  • 使用configparser 读 or 写 配置文件
    config.ini文件[config]username=2024222222password=123456time=202320241num1=1id1=018819num2=1id_1=018818读取配置文件defread_ini():file='config.ini'con=configparser.ConfigParser()con.read(file,encoding='u......