Java输入检测文件类型

时间:2012-11-18 05:35:15

标签: java file input

我正在编写一个程序,给定一个由单词和相关对象组成的文件,创建一个字典。例如,我可能将“Apple”一词与String对象“A red fruit”相关联

现在,一些对象是图像文件,有些是音频文件。在图像文件中,仅考虑扩展名“.jpg”和“.gif”(即包括在文件中)。同样,对于音频文件,只会考虑“.wav”和“。mid”。

我有类来处理显示图像文件和播放音频文件,但我现在正试图找出(在输入信息时)如何检测对象是图像还是音频文件,或者是否是都不是。我想以某种方式检查对象的最后三个字符,所以例如如果它是“jpg”那么我会将它标记为图像类型对象。或者,如果它在上面的“Apple”示例中是“uit”,那么它将被标记为两者。但是,我不知道如何只检查字符串的最后三个字符。是否有一些内置方法可以自动执行此字符串检查?

2 个答案:

答案 0 :(得分:0)

我认为检查文件名的最后3个字符不是一个好方法。您可以检查从'的最后一个索引开始的字符。 (点)就像在这个实用方法中一样:

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

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

答案 1 :(得分:0)

检查文件的扩展名不是查找文件类型的好方法。

我有一个非常相似的情况,过了一会儿我发现最好的方法是检查mimeType。我自己使用mimemagicHere你可能会发现更多相关内容。