java 怎么判断一个文件的类型,比如说是txt,jpg,xls,exe,等等,说后缀名的就不用回答了

java 怎么判断一个文件的类型,比如说是txt,jpg,xls,exe,等等,说后缀名的就不用回答了,第1张

二进制与二进制本身没什么区别,厅段区别在于文件结构粗昌,常见的图片、xls等等都是有相对固定的文件结构的,比如说总是以哪几个字节开始,后面跟的是什么数据,数据有多长等等。要判断文件类型,一般常用的方法是也是基于这个原理,通过文件前面的固定字节来判断,java也不例外,百度搜索一下 java 文件 类扮凳誉型 判断,第一个就是。

思路读取,文件的前8个字节,然带掘后根据这个判断,具体的代码自己实现起来有点小麻烦,可以通过搜羡apache的poi组件来实蠢漏核现

代码如下:

InputStream inp = xxx

if(! inp.markSupported()) {

inp = new PushbackInputStream(inp, 8)

}

if(POIFSFileSystem.hasPOIFSHeader(inp)) {

System.out.println("2003及以下")

}

if(POIXMLDocument.hasOOXMLHeader(inp)) {

System.out.println("2007及以上")

}

apache poi

Workbook hssWB = null

try {

//2003

hssWB = new HSSFWorkbook(new FileInputStream("excel文件"))

} catch (Exception e) {

//培饥坦 TODO: handle exception

//2007

hssWB = new XSSFWorkbook(new FileInputStream("配桐肢汪excel文件"))

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12189918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存