public class FileTypeUtil extends Object
此工具根据文件的前几位bytes猜测文件类型,对于文本、zip判断不准确,对于视频、图片类型判断准确
需要注意的是,xlsx、docx等Office2007格式,全部识别为zip,因为新版采用了OpenXML格式,这些格式本质上是XML文件打包为zip
| 构造器和说明 |
|---|
FileTypeUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static String |
getType(File file)
根据文件流的头部信息获得文件类型
1、无法识别类型默认按照扩展名识别
2、xls、doc、msi头信息无法区分,按照扩展名区分
3、zip可能为docx、xlsx、pptx、jar、war头信息无法区分,按照扩展名区分
|
static String |
getType(InputStream in)
|
static String |
getType(InputStream in,
String filename)
根据文件流的头部信息获得文件类型
注意此方法会读取头部28个bytes,造成此流接下来读取时缺少部分bytes
因此如果想服用此流,流需支持 InputStream.reset()方法。 |
static String |
getType(String fileStreamHexHead)
根据文件流的头部信息获得文件类型
|
static String |
getTypeByPath(String path)
通过路径获得文件类型
|
static String |
putFileType(String fileStreamHexHead,
String extName)
增加文件类型映射
如果已经存在将覆盖之前的映射 |
static String |
removeFileType(String fileStreamHexHead)
移除文件类型映射
|
public static String putFileType(String fileStreamHexHead, String extName)
fileStreamHexHead - 文件流头部Hex信息extName - 文件扩展名public static String removeFileType(String fileStreamHexHead)
fileStreamHexHead - 文件流头部Hex信息public static String getType(String fileStreamHexHead)
fileStreamHexHead - 文件流头部16进制字符串nullpublic static String getType(InputStream in) throws IORuntimeException
in - InputStreamnullIORuntimeException - 读取流引起的异常public static String getType(InputStream in, String filename)
InputStream.reset()方法。
1、无法识别类型默认按照扩展名识别
2、xls、doc、msi头信息无法区分,按照扩展名区分
3、zip可能为docx、xlsx、pptx、jar、war、ofd头信息无法区分,按照扩展名区分
in - InputStreamfilename - 文件名nullIORuntimeException - 读取流引起的异常public static String getType(File file) throws IORuntimeException
1、无法识别类型默认按照扩展名识别
2、xls、doc、msi头信息无法区分,按照扩展名区分
3、zip可能为docx、xlsx、pptx、jar、war头信息无法区分,按照扩展名区分
file - 文件 FilenullIORuntimeException - 读取文件引起的异常public static String getTypeByPath(String path) throws IORuntimeException
path - 路径,绝对路径或相对ClassPath的路径IORuntimeException - 读取文件引起的异常Copyright © 2022. All rights reserved.