判断java文件类型TikaToolKit的实例
引入依赖
org.apache.tika tika-core 1.20
或
compile'org.apache.tika:tika-core:1.20'
工具类
importlombok.AllArgsConstructor;
importlombok.Getter;
importlombok.extern.slf4j.Slf4j;
importorg.apache.tika.metadata.HttpHeaders;
importorg.apache.tika.metadata.Metadata;
importorg.apache.tika.metadata.TikaMetadataKeys;
importorg.apache.tika.parser.AutoDetectParser;
importorg.apache.tika.parser.ParseContext;
importorg.xml.sax.helpers.DefaultHandler;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.util.HashMap;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*tika
*
*@authorzhy
*/
@Slf4j
publicclassTikaToolUtil{
/**
*获取类型
*
*@paramfile文件
*@returnString
*/
publicstaticStringgetMimeType(Filefile){
if(file.isDirectory()){
return"thetargetisadirectory";
}
AutoDetectParserparser=newAutoDetectParser();
parser.setParsers(newHashMap<>());
Metadatametadata=newMetadata();
metadata.add(TikaMetadataKeys.RESOURCE_NAME_KEY,file.getName());
try(InputStreamstream=newFileInputStream(file)){
parser.parse(stream,newDefaultHandler(),metadata,newParseContext());
}catch(Exceptione){
log.error(e.getMessage());
}
returnmetadata.get(HttpHeaders.CONTENT_TYPE);
}
/**
*判断是否是图片
*
*@paramfile文件
*@returnboolean
*/
publicstaticbooleanisImage(Filefile){
Stringtype=getMimeType(file);
System.out.println(type);
Patternp=Pattern.compile(Type.IMAGE.name);
Matcherm=p.matcher(type);
returnm.matches();
}
/**
*判断是否是zip
*
*@paramfile文件
*@returnboolean
*/
publicstaticbooleanisZip(Filefile){
Stringtype=getMimeType(file);
System.out.println(type);
Patternp=Pattern.compile(Type.ZIP.name);
Matcherm=p.matcher(type);
returnm.matches();
}
/**
*判断是否是dicom
*
*@paramfile文件
*@returnboolean
*/
publicstaticbooleanisDicom(Filefile){
Stringtype=getMimeType(file);
Patternp=Pattern.compile(Type.DCM.name);
Matcherm=p.matcher(type);
returnm.matches();
}
/**
*类型枚举
*/
@Getter
@AllArgsConstructor
publicenumType{
/**
*dcm
*/
DCM("application/dicom"),
/**
*zip
*/
ZIP("application/zip"),
/**
*图片
*/
IMAGE("image/.*"),
/**
*视频
*/
VIDEO("video/*");
privateStringname;
}
publicstaticvoidmain(String[]args){
booleanimage=isImage(newFile("C:\\Users\\zhy\\Desktop\\dcm\\123.dcm"));
System.out.println("zhy:"+image);
}
}
补充知识:java根据文件流判断文件类型(后缀名)
我就废话不多说了,大家还是直接看代码吧~
importjava.io.FileInputStream;
publicclassFileType{
publicstaticStringbytesToHexString(byte[]src){
StringBuilderstringBuilder=newStringBuilder();
if(src==null||src.length<=0){
returnnull;
}
for(inti=0;i
publicclassTypeDict{
/**
常用文件的文件头如下:(以前六位为准)
JPEG(jpg),文件头:FFD8FF
PNG(png),文件头:89504E47
GIF(gif),文件头:47494638
TIFF(tif),文件头:49492A00
WindowsBitmap(bmp),文件头:424D
CAD(dwg),文件头:41433130
AdobePhotoshop(psd),文件头:38425053
RichTextFormat(rtf),文件头:7B5C727466
XML(xml),文件头:3C3F786D6C
HTML(html),文件头:68746D6C3E
Email[thoroughonly](eml),文件头:44656C69766572792D646174653A
OutlookExpress(dbx),文件头:CFAD12FEC5FD746F
Outlook(pst),文件头:2142444E
MSWord/Excel(xls.or.doc),文件头:D0CF11E0
MSAccess(mdb),文件头:5374616E64617264204A
WordPerfect(wpd),文件头:FF575043
Postscript(eps.or.ps),文件头:252150532D41646F6265
AdobeAcrobat(pdf),文件头:255044462D312E
Quicken(qdf),文件头:AC9EBD8F
WindowsPassword(pwl),文件头:E3828596
ZIPArchive(zip),文件头:504B0304
RARArchive(rar),文件头:52617221
Wave(wav),文件头:57415645
AVI(avi),文件头:41564920
RealAudio(ram),文件头:2E7261FD
RealMedia(rm),文件头:2E524D46
MPEG(mpg),文件头:000001BA
MPEG(mpg),文件头:000001B3
Quicktime(mov),文件头:6D6F6F76
WindowsMedia(asf),文件头:3026B2758E66CF11
MIDI(mid),文件头:4D546864
*/
publicstaticStringcheckType(Stringxxxx){
switch(xxxx){
case"FFD8FF":return"jpg";
case"89504E":return"png";
case"474946":return"jif";
default:return"0000";
}
}
}
以上这篇判断java文件类型TikaToolKit的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。