一,建立檔案和目錄的關鍵技術點如下:
1.File類別的createNewFile根據抽象路徑建立一個新的空白文件,當抽象路徑制定的文件存在時,建立失敗
2.File類別的mkdir方法根據抽象路徑建立目錄
3.File類別的mkdirs方法根據抽象路徑建立目錄,包括建立不存在的父目錄
4.File類別的createTempFile方法建立臨時文件,可以製定臨時文件的文件名稱前綴、後綴及文件所在的目錄,如果不指定目錄,則存放在系統的臨時資料夾下。
5.除mkdirs方法外,以上方法在建立檔案和目錄時,必須確保目標檔案不存在,而且父目錄存在,否則會建立失敗
二,實例示範如下:
import java.io.File; import java.io.IOException; public class CreateFileUtil { public static boolean createFile(String destFileName) { File file = new File(destFileName); if(file.exists()) { System.out.printlnln ("建立單一檔案" + destFileName + "失敗,目標檔案已存在!"); return false; } if (destFileName.endsWith(File.separator)) { System.out.println("建立單一檔案" + destFileName + "失敗,目標檔案不能為目錄!"); return false; } //判斷目標檔案所在的目錄是否存在if(!file.getParentFile().exists()) { //如果目標檔案所在的目錄不存在,則建立父目錄System.out.println("目標檔案所在目錄不存在,準備建立它!"); if(!file.getParentFile().mkdirs()) { System.out.println("建立目標檔案所在目錄失敗!"); return false; } } //建立目標檔案try { if (file.createNewFile()) { System.out.println("建立單一檔案" + destFileName + "成功!"); return true; } else { System.out.println("建立單一檔案" + destFileName + "失敗!"); return false; } } catch (IOException e) { e.printStackTrace() ; System.out.println("建立單一檔案" + destFileName + "失敗!" + e.getMessage()); return false; } } public static boolean createDir(String destDirName) { File dir = new File(destDirName); if (dir.exists()) { System.out.println("建立目錄" + destDirName + "失敗,目標目錄已經存在"); return false ; } if (!destDirName.endsWith(File.separator)) { destDirName = destDirName + File.separator; } //建立目錄if (dir.mkdirs()) { System.out.println("建立目錄" + destDirName + "成功! "); return true; } else { System.out.println("建立目錄" + destDirName + "失敗!"); return false; } } public static String createTempFile(String prefix, String suffix, String dirName) { File tempFile = null; if (dirName == null) { try{ //在預設資料夾下建立暫存檔案tempFile = File.createTempFile(prefix, suffix); //傳回暫存檔案的路徑return tempFile.getCanonicalPath(); } catch (IOException e) { e.printStackTrace(); System.out.println("建立暫存檔案失敗!" + e.getMessage()); return null; } } else { File dir = new File(dirName); //如果暫存檔案所在目錄不存在,先建立if (!dir.exists()) { if (!CreateFileUtil.createDir(dirName)) { System.out.println("建立暫存檔案失敗,無法建立暫存檔案所在的目錄! tempFile.getCanonicalPath(); } catch (IOException e) { e.printStackTrace(); System.out.println("建立臨時檔案失敗!" + e.getMessage()); return null; } } } public static void main (String[] args) { //建立目錄String dirName = "D:/work/temp/temp0/temp1"; CreateFileUtil.createDir(dirName); //建立檔案String fileName = dirName + "/temp2/tempFile.txt"; CreateFileUtil.createFile(fileName); //建立暫存檔案String prefix = "temp"; String suffix = ".txt "; for (int i = 0; i < 10; i++) { System.out.println("建立了暫存檔案:" + CreateFileUtil.createTempFile(prefix, suffix, dirName)); } //在預設目錄下建立臨時檔案for (int i = 0; i < 10; i++) { System.out.println("在預設目錄下建立了臨時文件:" + CreateFileUtil.createTempFile(prefix, suffix, null)); } } } }輸出結果:
建立目錄D:/work/temp/temp0/temp1成功! 目標檔案所在目錄不存在,準備創建它! 建立單一檔案D:/work/temp/temp0/temp1/temp2/tempFile.txt成功! 建立了臨時檔案:D:work emp emp0 emp1 emp5171.txt 建立了暫存檔案:D:work emp0 emp1 emp5172.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5173.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5174.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5175.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5176.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5177.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5178.txt 建立了暫存檔D:work emp emp0 emp1 emp5179.txt 建立了暫存檔案:D:work emp emp0 emp1 emp5180.txt 在預設目錄下建立了臨時檔案:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt 在預設目錄下建立了暫存檔案:C:Documents and SettingsAdministratorLocal SettingsTempemp55182.txt :C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt 在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt 在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt 在默認目錄下創建了臨時文件:C: Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt 在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt 在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt在預設目錄下建立了臨時檔案:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt