Java文件操做工具類

在工做中,對於文件的操做是必不可少的。在大多數的項目中都會遇到,若是每次進行對文件的操做都要去寫一遍相關的代碼,那會浪費不少時間。所以我把常常用到的操做抽取出來封裝爲一個工具類,用的時候調用就好了。
工具類代碼以下: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);
	}
}
相關文章
相關標籤/搜索