SpringBoot项目的出现java.io.FileNotFoundException: (系统找不到指定的路径。)

在SpringBoot项目中遇到java.io.FileNotFoundException的问题,通常是因为指定的文件路径不存在。错误主要出现在进行文件输入输出操作时。解决方案包括:注意Linux与Windows系统路径差异,如Linux下使用/file/uploadFiles/,Windows下使用d://uploadFiles/;检查项目是否设定了虚拟路径,确保访问路径正确配置。可以参考@Configuration类中的UploadFilePathConfig来调整路径设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:SpringBoot项目的出现java.io.FileNotFoundException: (系统找不到指定的路径。)

项目场景:Springboot用到文件上传下载功能

问题描述:

问题:java.io.FileNotFoundException: (系统找不到指定的路径。)
具体开发环境下控制台的报错为(windows开发环境):

java.io.FileNotFoundException: D:\ (系统找不到指定的路径。)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	...


原因分析:

在进行分析时,我得说清楚什么时候抛拒绝访问,什么时候抛找不到指定路径。原因是这样的,在构造一个File对象时,指定的文件路径是什么都可以,就算不存在也能够构造File对象,但是,现在你要对文件进行输入输出操作,也就是InputStream和OutputStream操作时,如果填写的路径不存在,那么就会报系统找不到指定路径


解决方案:

具体出现问题的地方有如下几个:

1、Linux和window系统的目录结构有所差异,具体例子如下:
#Linux
file.uploadFolder=/root/uploadFiles/

#Windows
file.uploadFolder=d://uploadFiles/

2、项目中是否设置了虚拟路径,访问绝对路径下资源或同类的方法。如果有可以检查方法中针对路径path是否有特别的设置,比如
注意红框的路径设置
另附,虚拟路径设置,访问绝对路径下资源的方法:
@Configuration
public class UploadFilePathConfig extends WebMvcConfigurerAdapter {

@Value("${file.staticAccessPath}")
private String staticAccessPath;
@Value("${file.uploadFolder}")
private String uploadFolder;

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder);
}

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值