当前位置: 首页 > news >正文

三种读取配置文件的方式

    在编写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"));

 


http://www.mrgr.cn/news/70460.html

相关文章:

  • Collections.synchronizedList()你真的会用吗?
  • 关于 3D Engine Design for Virtual Globes(三维数字地球引擎设计)
  • 第4章: 图像绘制与文本添加
  • 简析大模型参数高效微调方法
  • 图像处理实验四(Adaptive Filter)
  • MDBook 使用指南
  • 基于卷积神经网络的桃子叶片病虫害识别与防治系统,vgg16,resnet,swintransformer,模型融合(pytorch框架,python代码)
  • Linux网络的基本设置
  • 为什么白帽SEO比黑帽SEO更值得坚持?
  • 大顶堆的基本操作
  • vivado+modelsim: xxx is not a function name
  • 吃透红利!AI绘画变现方法汇总|变现方式:哪一种最适合你?方法加实践,小白也能上手赚钱!
  • 创新体验触手可及 紫光展锐携手影目科技推出AI眼镜开放平台
  • 软件测试基础二十一(接口测试 数据库相关)
  • 解决编译 fast-lio-lc 算法时遇到的error方法
  • 2023年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • 过程自动化的新黄金标准:Ethernet-APL
  • 多点支撑:滚珠导轨的均匀分布优势!
  • QT栅格布局的妙用
  • 【reflex】Python一种更直观和高效的方式来管理事件流模块
  • TCP最后一次握⼿连接阶段,如果ACK包丢失会怎样?
  • qt QWidgetAction详解
  • @Value 注解(可以将配置文件中的值注入到 Spring 管理的Bean的字段中)
  • 云岚到家 秒杀抢购
  • FastDDS服务发现之PDP的收发
  • 如何防止技术泄密?企业的机密管控必需掌握的十个小窍门,守护数据安全无死角!【科普篇】