整理的一些用到過的工具類,本文爲文件操做相關。不是很全......java
publicclassFileUtils { /** * 刪除指定的目錄或文件 * * @param path 要刪除的目錄或文件 * @return 刪除成功返回 true,不然返回 false。 */ publicstaticbooleandeleteFolder(String path) { booleanflag = false; File file = newFile(path); // 判斷目錄或文件是否存在 if(file.exists()) { // 判斷是否爲文件 if(file.isFile()) { // 爲文件時調用刪除文件方法 returndeleteFile(path); } else{ // 爲目錄時調用刪除目錄方法 returndeleteDirectory(path); } } else{ returnflag; } } /** * 刪除單個文件 * * @param path 要刪除文件的文件名 * @return 單個文件刪除成功返回true,不然返回false */ publicstaticbooleandeleteFile(String path) { booleanflag = false; File file = newFile(path); // 路徑爲文件且不爲空則進行刪除 if(file.isFile() && file.exists()) { file.delete(); flag = true; } returnflag; } /** * 刪除目錄以及目錄下的文件 * * @param path 要刪除目錄的文件路徑 * * @return 目錄刪除成功返回true,不然返回false */ publicstaticbooleandeleteDirectory(String path) { // 若是path不以文件分隔符結尾,自動添加文件分隔符 if(!path.endsWith(File.separator)) { path = path + File.separator; } File dirFile = newFile(path); // 若是dir對應的文件不存在,或者不是一個目錄,則退出 if(!dirFile.exists() || !dirFile.isDirectory()) { returnfalse; } booleanflag = true; File[] files = dirFile.listFiles(); // 刪除文件夾下的全部文件(包括子目錄) for(inti = 0; i < files.length; i++) { // 刪除子文件 if(files[i].isFile()) { flag = deleteFile(files[i].getAbsolutePath()); if(!flag) break; } else{ // 刪除子目錄的遞歸調用,循環刪除 flag = deleteDirectory(files[i].getAbsolutePath()); if(!flag) break; } } if(!flag) returnfalse; // 刪除當前目錄 if(dirFile.delete()) { returntrue; } else{ returnfalse; } } /** * 複製目錄 * * @param oldPath * 須要複製的目錄 * @param newPath * 目標目錄 */ publicstaticbooleancopyDirectory(String oldPath, String newPath) { BufferedReader br = null; BufferedWriter bw = null; try{ (newFile(newPath)).mkdirs(); // 若是目錄不存在 則創建新目錄 File a = newFile(oldPath); String[] file = a.list(); File temp = null; for(inti = 0; i < file.length; i++) { if(oldPath.endsWith(File.separator)) { temp = newFile(oldPath + file[i]); } else{ temp = newFile(oldPath + File.separator + file[i]); } if(temp.isFile()) { br = newBufferedReader(newInputStreamReader( newFileInputStream(temp))); bw = newBufferedWriter(newOutputStreamWriter( newFileOutputStream(newPath + File.separator + (temp.getName()).toString()))); String data; while((data = br.readLine()) != null) { bw.write(data, 0, data.length()); } bw.flush(); } if(temp.isDirectory()) {// 若是是子文件夾 copyDirectory(oldPath + File.separator + file[i], newPath + File.separator + file[i]); } } returntrue; } catch(Exception e1) { System.out.println("複製整個文件夾內容操做出錯"); e1.printStackTrace(); returnfalse; } finally{ try{ if(br != null) { br.close(); } if(bw != null) { bw.close(); } } catch(Exception e2) { } } } /** * * 測試方法 * */ publicstaticvoidmain(String[] args) { FileUtils.deleteFolder("E:/testFolder"); } }