💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
文件类型识别主要有两种方法:基于文件扩展名(快速但不准确)和基于文件流前几个字符(准确但较慢)。可以使用Java中的Files.probeContentType、URLConnection以及第三方库(如jMimeMagic和Apache Tika)来检测MIME类型。
🎯
关键要点
-
文件类型识别主要有两种方法:基于文件扩展名和基于文件流前几个字符。
-
基于文件扩展名的方法快速但不准确,无法检测伪造文件或没有扩展名的文件。
-
基于文件流的方法准确但较慢,可以识别真实文件类型。
-
Files.probeContentType方法在Java 7中引入,依赖操作系统的FileTypeDetector实现,准确性取决于操作系统。
-
URLConnection类提供多种API来检测MIME类型,包括getContentType和guessContentTypeFromStream等。
-
MimetypesFileTypeMap类使用预定义的mime.types文件进行MIME类型检测,依赖文件扩展名。
-
jMimeMagic是一个第三方库,可以基于文件流检测真实文件类型。
-
Apache Tika是一个强大的工具包,可以准确检测文件的MIME类型,使用文件流进行检测。
-
总结:基于文件扩展名的方法包括Files.probeContentType等,基于文件流的方法包括URLConnection.getContentType等。
➡️