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);
从代码可以看出,我们可以先判断目录是否存在,并创建,然后再创建文件。
执行后
问题解决,开心。