将在win7上面测试通过的代码给客户,发现客户怎么都报错,查看日志,报的是:FileNotFoundException
但是要建立的文件在文件夹里面,在之前我使用了 org.apache.commons.io.FileUtils.forceMkdir(路径);
然后使用:File file=new File(backupPath);
以及FileOutputStream out =new FileOutputStream(file, true); 想要创建文件;在WIN上面能够顺利执行,可是客户不能通过;
通过debug,查看,发现在File file=new File(backupPath);时,在路径下面没有创建backupPath文件;在查找问题原因的时候找到这么一句话,
FileOutputStream并不会帮你创建不存在的路径,所以要先创建路径,再创建文件
然而在别人写的代码,boolean del = file.delete();
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
在file.createNewFile();之后,后出现一个以backupPath为名的文件,现在等待客户方的答案,希望是可以正常执行的。
下面是从别人博客转过来的,FileNotFoundException出现的原因:
(1)文件名乱码。你工程的编码是 utf-8还是 gbk,如果是gbk那么小心文件名如果有中文,会乱码。
(2)没有创建文件夹,在没有文件夹情况下,创建文件将报错.解决方案为先创建文件夹,具体代码见下面。
(3)有文件夹,但文件所在位置无文件夹,即文件路径太深,超过二级。解决方案同2.
因篇幅问题不能全部显示,请点此查看更多更全内容