如何以编程方式知道文件类型?

时间:2017-01-03 03:24:04

标签: java

我使用3种不同类型的文件(XML,CSV和JSON),我不知道我在哪一个工作。我尝试了一些代码,比如说,

File file = new File("src/main/java/data" + "/molecules.xml");
final MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();
System.out.println(fileTypeMap.getContentType(file.getName()));

并返回application/octet-stream,同样适用于.csv.json文件。如何获得正确的文件类型?

1 个答案:

答案 0 :(得分:3)

只有MimetypesFileTypeMap可以使用以下资源之一匹配文件类型时,才会显示正确的MIME类型:

  
      
  1. 以编程方式将条目添加到MimetypesFileTypeMap实例。
  2.   
  3. 用户主目录中的文件.mime.types
  4.   
  5. 文件<java.home>/lib/mime.types
  6.   
  7. 名为META-INF/mime.types
  8. 的文件或资源   
  9. 名为META-INF/mimetypes.default的文件或资源(通常仅在activation.jar中找到   文件)。
  10.   

最快的解决方案是通过addMimeTypes使用选项#1:

final MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();
fileTypeMap.addMimeTypes("text/csv csv CSV");
fileTypeMap.addMimeTypes("application/json json JSON");
fileTypeMap.addMimeTypes("application/xml xml XML");