java识别文件类型_在Java中识别文件类型
我使用
Apache Tika,它使用魔术字节模式和globbing提示(文件扩展名)来识别文件类型,以检测MIME类型.它还支持对文件内容的其他解析(我不真正使用).
以下是一个简单而肮脏的例子,说明如何使用Tika来检测文件类型,而不对文件执行任何额外的解析:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import org.apache.tika.Metadata.HttpHeaders;
import org.apache.tika.Metadata.Metadata;
import org.apache.tika.Metadata.TikaMetadataKeys;
import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.xml.sax.helpers.DefaultHandler;
public class Detector {
public static void main(String[] args) throws Exception {
File file = new File("/pats/to/file.xls");
AutoDetectParser parser = new AutoDetectParser();
parser.setParsers(new HashMap());
Metadata Metadata = new Metadata();
Metadata.add(TikaMetadataKeys.RESOURCE_NAME_KEY,file.getName());
InputStream stream = new FileInputStream(file);
parser.parse(stream,new DefaultHandler(),Metadata,new ParseContext());
stream.close();
String mimeType = Metadata.get(HttpHeaders.CONTENT_TYPE);
System.out.println(mimeType);
}
}
java识别文件类型_在Java中识别文件类型相关推荐
- java鸭子类型_语言设计中的鸭子类型风格
在动态语言的世界里一直流传着一种叫做鸭子类型的风格,其来自谚语:"如果行鸭子一样走路,像鸭子一样呱呱叫,那它就是一只鸭子". 从鸭子类型,我们可以联想到它的推导,并不在乎类型的真正 ...
- java获取文件目录列表_获取目录中的文件列表
我正在开发一个C项目,我需要获取目录中的文件列表 . 我正在使用dirent.h但是在使用它时遇到了一些问题,我正在Linux下构建程序 . 当我尝试构建程序时,我收到以下错误 myClass:err ...
- 凡是函数中未指定存储类型_凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 。...
凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 . 答:自动(auto) 婴儿1.5岁-2岁时,使用的句子主要是( ). 答:电报句 监控批量成本预测需要() 答:选择预测所需的成本研究 现行 ...
- python中读取文件编码_[转载]python中使用文件的读取编码问题
原文链接:https://www.cnblogs.com/qianboping/p/6524420.html 今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都 ...
- c++ enum 给定类型_讲解C++中的枚举类型以及声明新类型的方法
C++枚举类型如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内.声明枚举类型用 ...
- python定位文件位置_在Python中定位文件位置
tell()方法告诉您文件中的当前位置:换句话说,下一次读取或写入将发生在从文件开头开始的那么多个字节处. seek(offset [,from])方法更改当前文件位置.offset参数指示要移动的字 ...
- java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at
[http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...
- python解压到指定文件夹_在Python中压缩和解压文件
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java中打开文件显示_从java程序中打开任何文件
在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...
最新文章
- ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解
- C#委托-委托不关心被封装的类
- c++ 顺序容器list的一个例子
- Elasticsearch常用工具清单
- Java8学习笔记(三)--方法引入
- 迭代器 java_Java设计模式8:迭代器模式
- java中doloop语句_Java中的do-while循环——通过示例学习Java编程(11)
- CCF CSP202112-1 序列查询
- 【白话模型量化系列一】矩阵乘法量化
- spring源码-第五个后置处理器笔记
- 识别视频文件夹,listview
- oracle function详解,Oracle函数用法详解
- html5 for vs2008插件,Chart 控件 for vs2008的安装
- SI4463实验笔记
- 词根词缀整理2019-3-20
- 创业青年,想赚钱就下乡去吧
- JVM(4)-MAT: 支配树 Dominator Tree
- 数据分析的步骤是什么?
- 手机视频连接计算机显示器播放,教您使用手机/平板电脑直接在计算机上播放视频...
- Android11对比IOS14,iPhone11升级至iOS14,对比苹果iOS13,迎来3大新变化
热门文章
- php mysql 超时时间_php mysql超时设置方法
- 收集无良医院清单的开源项目,浏览器插件自动提示无良网站!
- 皮一皮:到底谁才是渣王...
- Spring 的 Controller 是单例还是多例?怎么保证并发的安全
- 博客搭建攻略(三):创造收益
- rknn 学习资料整理
- python 四边形分割
- 分割2021PanopticFCN
- ubuntu子系统多版本
- TypeError: __init__() got an unexpected keyword argument #34serialized_options #34