2012-11-18 111 views
0

我正在編寫一個程序,給定一個由單詞和關聯對象組成的文件,創建一個字典。例如,我可能會將字符串「Apple」與字符串對象「A red fruit」關聯起來。Java輸入檢測文件類型

現在,一些對象是圖像文件,一些是音頻文件。在圖像文件中,只會考慮擴展名「.jpg」和「.gif」(即包含在文件中)。同樣,對於音頻文件,只會考慮「.wav」和「.mid」。

我有類來處理顯示圖像文件和播放音頻文件,但我現在試圖找出(當輸入信息時)如何檢測對象是圖像或音頻文件,或者如果它既不是。我正在考慮檢查對象的最後三個字符,例如,如果它是「JPG」,那麼我會將它標記爲圖像類型對象。或者,如果它是「uit」,就像上面的「Apple」示例那樣,那麼它將被標記爲不是。但是,我不知道如何僅檢查字符串的最後三個字符。有一些內置的方法來自動執行此String檢查嗎?

+1

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#endsWith(java.lang.String)? – 2012-11-18 05:37:27

+1

使用'endsWith()'函數檢查它是否以特定的字符串結尾。 –

+0

另請參閱:http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in​​-java如果你想檢查沒有擴展名 – 2012-11-18 05:38:42

回答

0

檢查文件名的最後3個字符不是一個好方法,我想。您可以檢查從最後一個索引''開始的字符。 (點)就像這個工具方法:

public static String getFileExtension(String fileName) 
{ 
    if (fileName == null || fileName.equals("") || !fileName.contains(".")) 
     return ""; 

    return fileName.substring(fileName.lastIndexOf('.'), fileName.length()); 
} 
0

檢查文件的擴展名是找不到它的類型的好方法。

我有一個非常相似的情況,過了一段時間後我發現最好的方法是檢查mimeType。我自己使用mimemagicHere你可以找到更多關於它的信息。