Java 如何获得文件的 Media Type

一般来说你可以使用 Apache Tika 来获得文件的类型。

Tika 是一个内容分析工具

Maven

设置 maven 的版本到你的 POM 文件中。

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>1.25</version>
</dependency>

测试代码

例如,我们可以使用下面的测试代码。

@Test
public void whenUsingTika_thenSuccess() {
    File file = new File("product.png");
    Tika tika = new Tika();
    String mimeType = tika.detect(file);
 
    assertEquals(mimeType, "image/png");
}

你需要首先 New 一个文件对象,然后通过文件对象进行测试就可以了。

例如我们使用上面类似的代码测试了一些代码:

09:32:36.377 [main] DEBUG c.i.s.c.test.utilities.FileUtilsTest - TXT - [text/plain]
09:32:36.389 [main] DEBUG c.i.s.c.test.utilities.FileUtilsTest - CSV - [text/csv]
09:32:36.395 [main] DEBUG c.i.s.c.test.utilities.FileUtilsTest - XLS - [application/vnd.ms-excel]
09:32:36.399 [main] DEBUG c.i.s.c.test.utilities.FileUtilsTest - XLSX - [application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]

上面测试过一些文件类和类型的返回。