FileOutputStream out = new FileOutputStream( file );
File 类这个名字有一定的误导;我们可能会认为它指代的是文件,实际上却并非如此。它既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称–《java编程思想》
我们都知道,如果文件不存,FileOutputStream 会自动创建文件,如果已存在,会覆盖原文件。
但是如果路径上的文件夹没有创建,fileoutputStream是不会帮我们创建的,就会报上面的这个错误。
譬如:file=”2016\11\03\test.txt” 若文件夹 2016、11、03任一不存在都会报找不到文件。
可以先新建文件夹:
File dir = new File(path);
if (!dir.exists()) {
try {
dir.mkdirs();
} catch (Exception e) {
this.state = this.errorInfo.get("DIR");
return "";
}
}