java使用File写入文件出现java.io.FileNotFoundException错误解决办法(无法生成文件而是生成目录)

本文分享了解决Java中使用File操作时遇到的FileNotFoundException,重点在于理解如何通过判断是否为目录来避免将文件误创建为文件夹。通过实例代码演示了正确流程,确保文件而非目录的创建。
摘要由CSDN通过智能技术生成

java使用File写入文件图片出现java.io.FileNotFoundException错误解决办法(无法生成文件而是生成目录)

java.io.FileNotFoundException错误解决(使用!f.isDirectory()判断)

入坑许久,这个错误让我头疼了一下午。当我们使用File类创建文件时,会遇见被拒绝访问的错误异常。本人在网上搜索基本都是后缀名没有添加,但是这也无法解决本人问题(磁盘写入权限已检查,没有问题),以致我认为是电脑出现了问题。但在我仔细检查后,发现是方法逻辑问题。

修改前代码

FileOutputStream fos = null;
File f = new  File("f:\\upload\\temp.txt");
if (!f.isDirectory()){
    f.mkdirs();
}
fos = new FileOutputStream(f);

执行后
在这里插入图片描述

你可能会觉得这段代码没错,但是它无法生成.txt文件还会java.io.FileNotFoundException错误,并且生成一个命名temo.txt的文件夹。问题就在于!f.isDirectory(),它把temo.txt当成一个目录判断为不存在了,就执行了 f.mkdirs();生成了该目录。

修改后代码

FileOutputStream fos = null;
File f = new  File("f:\\upload");
if (!f.isDirectory()){
	f.mkdirs();
}
f = new  File("f:\\upload\\temp.txt");
fos = new FileOutputStream(f);

从代码可以看出,我们可以先判断目录是否存在,并创建,然后再创建文件。

执行后
在这里插入图片描述
问题解决,开心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值