那麼我的問題是,如果說我正在做一個文件,像這樣如果目錄不存在,是否會創建一個文件?
File f = new File("THE_Folder/me.txt");
但「THE_Folder」犯規存在,該文件夾將仍然在最後,當我保存文件中創建的文件?它會創建「THE_Folder」和「me.txt」嗎?
那麼我的問題是,如果說我正在做一個文件,像這樣如果目錄不存在,是否會創建一個文件?
File f = new File("THE_Folder/me.txt");
但「THE_Folder」犯規存在,該文件夾將仍然在最後,當我保存文件中創建的文件?它會創建「THE_Folder」和「me.txt」嗎?
不,它不會。但有一個方便的createNewFile()和mkdirs()方法。
更具體地說,使用mkdirs()
來創建目錄,但是您首先需要調用getParentFile(),因爲您不想創建名爲me.txt的目錄。
然後你可以調用createNewFile()
方法來最終創建你的新文件。
正如EJP所解釋的,沒有必要致電createNewFile()
,因爲FileOutputStream
和FileWriter
會爲您創建新文件。
創建一個File
對象本身並不會創建文件或目錄。您可以撥打
File f2 = f.getParentFile();
if (f2 != null) f2.mkdirs();
如果它們不存在,則創建必要的目錄。 (您不需要null
檢查,如果你確定f
指定父目錄,現有的或以其他方式)。在此之後,你可以調用
f.createNewFile();
創建該文件本身。請注意,如果您在創建目錄之前嘗試創建該文件,您將得到一個IOException
。
'f.getParentFile()。mkdirs()'實際上。 – EJP
@EJP - 很好的結果 –
當你嘗試時發生了什麼?順便說一句,不是我的倒票。 –
-1:這個問題沒有顯示任何研究工作。請參閱[文檔](http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String))。 – bdares
你曾嘗試過嗎? –