判断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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。