在工做中,對於文件的操做是必不可少的。在大多數的項目中都會遇到,若是每次進行對文件的操做都要去寫一遍相關的代碼,那會浪費不少時間。所以我把常常用到的操做抽取出來封裝爲一個工具類,用的時候調用就好了。
工具類代碼以下:java
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * 文件操做工具類 */ public class FileUtils { /** * 獲取文件擴展名 * @param filename * @return */ public static String getExtend(String filename) { if ((filename != null) && (filename.length() > 0)) { int i = filename.lastIndexOf('.'); if ((i > 0) && (i < (filename.length() - 1))) { return (filename.substring(i+1)).toLowerCase(); } } return ""; } /** * 文件複製 * @param inputFile 被複制文件 * @param outputFile 複製後的文件 * @throws FileNotFoundException */ public static void copyFile(String inputFile,String outputFile) throws FileNotFoundException{ File sFile = new File(inputFile); if (!sFile.exists() || !sFile.isFile()) { System.out.println("錯誤: " + inputFile + "不存在!"); return ; } File tFile = new File(outputFile); FileInputStream fis = new FileInputStream(sFile); FileOutputStream fos = new FileOutputStream(tFile); int temp = 0; byte[] buf = new byte[10240]; try { while((temp = fis.read(buf))!=-1){ fos.write(buf, 0, temp); } System.out.println("--------成功複製文件---------"+inputFile); } catch (IOException e) { System.out.println("文件流複製失敗!"); e.printStackTrace(); } finally{ try { fis.close(); fos.close(); } catch (IOException e) { System.out.println("文件流關閉失敗!"); e.printStackTrace(); } } } /** * 判斷文件是否爲圖片 * @param filename * @return true 是,false 否 */ public static boolean isPicture(String filename) { // 文件名稱爲空的場合 if (isEmpty(filename)) { // 返回不和合法 return false; } // 得到文件後綴名 String tmpName = getExtend(filename); // 聲明圖片後綴名數組 String imgeArray[][] = { { "bmp", "0" }, { "dib", "1" }, { "gif", "2" }, { "jfif", "3" }, { "jpe", "4" }, { "jpeg", "5" }, { "jpg", "6" }, { "png", "7" }, { "tif", "8" }, { "tiff", "9" }, { "ico", "10" } }; // 遍歷名稱數組 for (int i = 0; i < imgeArray.length; i++) { // 判斷單個類型文件的場合 if (imgeArray[i][0].equals(tmpName.toLowerCase())) { return true; } } return false; } /** * 刪除絕對路徑下的文件 * @param strFileName * @return 若是刪除成功true不然false */ public static boolean delete(String strFileName) { File fileDelete = new File(strFileName); if (!fileDelete.exists() || !fileDelete.isFile()) { System.out.println("錯誤: " + strFileName + "不存在!"); return false; } System.out.println("--------成功刪除文件---------"+strFileName); return fileDelete.delete(); } /** * 判斷字符是否爲空值 * @param object * @return */ public static boolean isEmpty(Object object) { if (object == null) { return (true); } if (object.equals("")) { return (true); } if (object.equals("null")) { return (true); } return (false); } //測試方法 public static void main(String[] args) throws FileNotFoundException { //獲取文件擴展名 //String extend = FileUtils.getExtend("E:\\test.jpg"); //System.out.println(extend); //複製文件 //FileUtils.copyFile("E:\\test.txt", "D:\\test.txt"); //判斷文件是否爲圖片 //boolean isPicture = FileUtils.isPicture("E:\\test.jpg"); //System.out.println(isPicture); boolean isDelete = FileUtils.delete("D:\\test.ftl"); System.out.println(isDelete); } }