1. 程式人生 > >FileOutputStream應用中'java.io.FileNotFoundException:'

FileOutputStream應用中'java.io.FileNotFoundException:'

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 "";
            }
        }