基於文件內容(而不是擴展名)來檢測真正的文件類型我使用apache Tika。如何檢查文件內容的真實形象
我寫了下面的代碼:
InputStream theInputStream = new FileInputStream("D:\\video.mp4");
try (InputStream is = theInputStream;
BufferedInputStream bis = new BufferedInputStream(is);) {
AutoDetectParser parser = new AutoDetectParser();
Detector detector = parser.getDetector();
Metadata md = new Metadata();
MediaType mediaType = detector.detect(bis, md);
mediaType.getBaseType().compareTo(MediaType))
System.out.println(mediaType);
}
這段代碼輸出image/jpeg
。
這是事實,因爲我改變了文件擴展名。
現在我想檢查該文件是圖像。
我無法在MediaType類中找到枚舉。
現在我只知道以下方式:
mediaType.toString().startsWith("image");
但這個代碼看起來醜陋。
你能提供更好的解決方案嗎?
這絕對是正確的方式。 – Jason
@Jason'MediaType'的'toString()'方法沒有記錄在API文檔中,所以我不會依賴於... – haraldK