使用字节输入流报错 java.io.FileNotFoundException: srcdruid.properties (系统找不到指定的文件。)

简介: 使用字节输入流报错 java.io.FileNotFoundException: srcdruid.properties (系统找不到指定的文件。)

错误再现

C:\Users\ZDY\.jdks\corretto-1.8.0_412\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:E:\IntelliJ IDEA 2023.1.2\lib\idea_rt.jar=63470:E:\IntelliJ IDEA 2023.1.2\bin" -Dfile.encoding=UTF-8 -classpath "E:\IntelliJ IDEA 2023.1.2\lib\idea_rt.jar;E:\IntelliJ IDEA 2023.1.2\plugins\junit\lib\junit5-rt.jar;E:\IntelliJ IDEA 2023.1.2\plugins\junit\lib\junit-rt.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\charsets.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\access-bridge-64.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\cldrdata.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\dnsns.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\jaccess.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\jfxrt.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\localedata.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\nashorn.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\sunec.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\sunjce_provider.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\sunmscapi.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\sunpkcs11.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\ext\zipfs.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\jce.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\jfr.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\jfxswt.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\jsse.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\management-agent.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\resources.jar;C:\Users\ZDY\.jdks\corretto-1.8.0_412\jre\lib\rt.jar;C:\Users\ZDY\Desktop\JDBC\out\production\jdbc;C:\Users\ZDY\Desktop\JDBC\jdbc\lib\mysql-connector-java-8.0.15.jar;C:\Users\ZDY\.m2\repository\junit\junit\4.13.1\junit-4.13.1.jar;C:\Users\ZDY\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\ZDY\Desktop\JDBC\jdbc\lib\druid-1.1.12.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 example.BrandTest,testSelectAll
C:\Users\ZDY\Desktop\JDBC\jdbc
 
java.io.FileNotFoundException: src\drui.properties (系统找不到指定的文件。)
 
  at java.io.FileInputStream.open0(Native Method)
  at java.io.FileInputStream.open(FileInputStream.java:195)
  at java.io.FileInputStream.<init>(FileInputStream.java:138)
  at java.io.FileInputStream.<init>(FileInputStream.java:93)
  at example.BrandTest.testSelectAll(BrandTest.java:27)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
  at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
  at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
  at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
  at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
  at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
  at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
  at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
  at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
  at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
  at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
  at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
  at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
  at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)

分析

对于这种写死文件路径的方式比较繁琐

不便于操作

因为我们没有输入提示

类似于手搓源码

这边给大家看看我的项目结构

我们要在BrandTest里用字节输入流引入druid.properties文件

我们可以有两种方式

绝对路径

复制绝对路径填入

 //获取连接
        Properties prop=new Properties();
        prop.load(new FileInputStream("C:\\Users\\ZDY\\Desktop\\JDBC\\jdbc\\src\\druid.properties"));

测试通过

能成功链接

相对路径(推荐)

我们观察不难发现

配置文件在src文件夹下

我们直接找我们需要引入文件的上级文件夹即可

这样也能成功对应上文件

   //获取连接
        Properties prop=new Properties();
        prop.load(new FileInputStream("src\\druid.properties"));
目录
相关文章
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
69 9
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
2天前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
13天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
76 34
|
6天前
|
关系型数据库 MySQL Linux
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
当MySQL 8.4启动时报错“io_setup() failed with EAGAIN”时,通常是由于系统AIO资源不足所致。通过增加AIO上下文数量、调整MySQL配置、优化系统资源或升级内核版本,可以有效解决这一问题。上述解决方案详细且实用,能够帮助管理员快速定位并处理此类问题,确保数据库系统的正常运行。
39 9
|
29天前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
42 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
22天前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
1月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
41 3
|
1月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。