java获取文件的mime,java获取文件是不是文本,java获取文件类型(非后缀方式)
发布日期:2021-06-29 04:43:28
浏览次数:4
分类:技术文章
本文共 1532 字,大约阅读时间需要 5 分钟。
如标题:
为什么要判断文件是不是文本?我来给你大个比方,你有个上传文件的接口,需要上传文本文件,针对文本文件进行扫描处理,文本文件在linux中是可以没有后缀的,然而客户或者用户才不管你这个接口的要求,一顿乱传,导致你各种解析失败,报各种错误,到最后你才发现只有测试是真爱,你说让他传文本他就真的只传文本文件,所以我们需要通过技术手段来甄别用户或者客户上传的文件是不是文本文件。
怎么判断?:
可通过获取文件MIME来实现,什么是mime?百度上难懂拗口的解释我就不说了,就是Content-Type,搞过web开发的同学们都知道的,mime的大全:
实现:
就是现在,让我们来整起来,我们使用的是tika:
1:导入maven依赖
org.apache.tika tika-core 1.24.1
2:代码:
public static String getFileMime(InputStream inputStream,String fileName) throws TikaException, SAXException, IOException { ParseContext parseContext = new ParseContext(); BodyContentHandler contenthandler = new BodyContentHandler(); Metadata metadata = new Metadata(); if(StringUtils.isNotBlank(fileName)){ metadata.set(Metadata.RESOURCE_NAME_KEY, fileName); } Parser parser = new AutoDetectParser(); parser.parse(inputStream,contenthandler, metadata,parseContext); String fileMime = metadata.get(Metadata.CONTENT_TYPE); return fileMime; } public static void main(String[] args) { File file = new File("E:\\新建文本文档.txt"); try { InputStream is = new FileInputStream(file); String mime = getFileMime(is, file.getName()); System.out.println(mime); } catch (ZeroByteFileException e){ System.out.println("文件是空的"); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
结果:
所以我们只需要判断是不是text前缀就行啦,so ez,too simple....
转载地址:https://blog.csdn.net/zhanghaishan/article/details/107151445 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月03日 20时08分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
H264码流中SPS PPS详解
2021-07-02
Android Studio cmake编译FFmpeg以及Jni调用
2021-07-02
live555搭建简易流媒体服务
2021-07-02
英伟达CUVID硬解,并通过FFmpeg读取文件
2021-07-02
【Arduino实战教程 001】入门Hello World
2021-07-02
Ubuntu下安装clang和libc++
2021-07-02
RTMP协议播放流程的实现及抓包分析
2021-07-02
在Ubuntu下搭建C/C++编程环境(vim+gcc+gdb)
2021-07-02
C++笔试面试真题回顾与知识点总结
2021-07-02
【ROS教程 008】机器视觉
2021-07-02
【ROS教程 009】导航功能包集入门
2021-07-02
FFmpeg 音频处理
2021-07-02
C语言基础编程题目
2021-07-02
计算机编程理论基础
2021-07-02
最简单的FFmpeg YUV420P图像拼接实例
2021-07-02
YUV编码为H264 H264封装为MP4
2021-07-02
人生的重要品质
2021-07-02