Java中如何获取一个文件MIME-TYPE呢?

戚薇 Java经验 发布时间:2023-07-18 21:42:16 阅读数:15026 1
下文笔者讲述获取文件的MIME-TYPE的方法及示例分享,如下所示
获取文件类型的实现思路
  方式1:
   借助Files.probeContentType方法获取文件类型
  方式2:
   使用URLConnection 创建一个文件对象
      使用getContentType()方法即可获取文件类型
  方式3:
   getFileNameMap方法
  方式4:
   Apache Tika方法

使用Files.probeContentType直接获取文件的类型

Path path = Files.createTempFile("myprofile", ".txt");
String mimeType = Files.probeContentType(path);
Files.probeContentType
   会使用系统安装的FileTypeDetector探测文件类型
   没有安装的FileTypeDetector
  
缺点
   当文件不再文件系统上存在或者文件没有扩展名,都不能成功获取文件的类型。

URLConnection

URLConnection提供几个API来获取文件的MIME类型
   主要由以下几个API:
1.API getContentType
File myProcileFile = new File("myprofile.png");
URLConnection connection = myProcileFile.toURL().openConnection();
String mimeType = connection.getContentType();
 
2.guessContentTypeFromName
 
File myProcileFile = new File("myprofile.png");
		String mimeType = URLConnection.guessContentTypeFromName(myProcileFile.getName());


3.getFileNameMap

File myProcileFile = new File("myprofile.png");
		FileNameMap fileNameMap = URLConnection.getFileNameMap();
		String mimeType = fileNameMap.getContentTypeFor(myProcileFile.getName());
 
System.setProperty("content.types.user.table","my-table-file");

MimeTypesFileTypeMap

File file = new File("myprofile.png");
    MimetypesFileTypeMap mimetypesFileTypeMap = new MimetypesFileTypeMap();
    String mimeType = mimetypesFileTypeMap.getContentType(file.getName());

Apache Tika

Apache Tika
  是一个检测或获取文件Meta数据的工具集
  也提供丰富的接口用于探测文件的MIME类型
   他实现的基本原理也是根据stream里的Magic标示来实现的
    如果不适用stream的接口
      则是根据文件的扩展名来实现
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202307/16896877787102.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者