標籤:java 尾碼名 string file 檔案
這本來不是一個問題,利用架構本來有的方法,或者File類的getPath()方法,取出要判斷檔案路徑,或者getName()方法取出檔案路徑,成為一個String字串假設為fileName之後,再對帶哦用這fileName的endsWith("txt")方法,得到的布爾值就能判斷其是否txt檔案。這本來沒什麼好說,但會出現什麼呢?比如要判斷是否為圖片檔案,尤其是一些上傳系統中,你的判斷條件就要寫成如下的形式:
if (fileName.endsWith(".jpg") || fileName.endsWith(".jpeg") || fileName.endsWith(".bmp") || fileName.endsWith(".gif") || fileName.endsWith(".png")){}在允許檔案類型的比較多的情況,非常難看,此時可以利用indexOf方法與Java的可變長參數可以完美解決這個問題,具體可以參看《【Java】JDK1.5以後新型的泛型參數傳遞方法Object...args》(點擊開啟連結)這裡不再贅述了。
比如以下的程式,判斷該檔案是否為.txt,.png,gif,.bmp之一,並對f:\\a.jsp這個路徑進行測試,代碼如下:
package isValid;public class validTest {public static boolean isValid(String contentType, String... allowTypes) {if (null == contentType || "".equals(contentType)) {return false;}for (String type : allowTypes) {if (contentType.indexOf(type) > -1) {return true;}}return false;}public static void main(String[] args) {String[] allowTypes = new String[] { ".txt", ".png", "gif", ".bmp" };Boolean CanUploaded = isValid("f:\\a.jsp", allowTypes);if (CanUploaded) {System.out.println("該檔案為.txt,.png,gif,.bmp之一,允許上傳!");} else {System.out.println("該檔案不為.txt,.png,.gif,.bmp之一,禁止上傳!");}}}運行結果如下:
這樣就可以避免在if中寫過多的東西。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【Java】判斷檔案的尾碼名