java file 获取文件类型_Android中Java根据文件头获取文件类型
前面贴过Android系统内部的MediaFile类来获取文件类型的办法,这个类主要是根据文件的扩展名来判断,其准确性不是很好。具体可查看Android系统使用MediaFile类判断音频文件类型。其实,获取文件类型最好的办法便是根据文件头信息来判断。下面贴出相关代码:
public class FileType {
public static final HashMap mFileTypes = new HashMap();
static {
//images
mFileTypes.put("FFD8FF", "jpg");
mFileTypes.put("89504E47", "png");
mFileTypes.put("47494638", "gif");
mFileTypes.put("49492A00", "tif");
mFileTypes.put("424D", "bmp");
//
mFileTypes.put("41433130", "dwg"); //CAD
mFileTypes.put("38425053", "psd");
mFileTypes.put("7B5C727466", "rtf"); //日记本
mFileTypes.put("3C3F786D6C", "xml");
mFileTypes.put("68746D6C3E", "html");
mFileTypes.put("44656C69766572792D646174653A", "eml"); //邮件
mFileTypes.put("D0CF11E0", "doc");
mFileTypes.put("5374616E64617264204A", "mdb");
mFileTypes.put("252150532D41646F6265", "ps");
mFileTypes.put("255044462D312E", "pdf");
mFileTypes.put("504B0304", "zip");
mFileTypes.put("52617221", "rar");
mFileTypes.put("57415645", "wav");
mFileTypes.put("41564920", "avi");
mFileTypes.put("2E524D46", "rm");
mFileTypes.put("000001BA", "mpg");
mFileTypes.put("000001B3", "mpg");
mFileTypes.put("6D6F6F76", "mov");
mFileTypes.put("3026B2758E66CF11", "asf");
mFileTypes.put("4D546864", "mid");
mFileTypes.put("1F8B08", "gz");
mFileTypes.put("", "");
mFileTypes.put("", "");
}
public static String getFileType(String filePath) {
return mFileTypes.get(getFileHeader(filePath));
}
//获取文件头信息
public static String getFileHeader(String filePath) {
FileInputStream is = null;
String value = null;
try {
is = new FileInputStream(filePath);
byte[] b = new byte[3];
is.read(b, 0, b.length);
value = bytesToHexString(b);
} catch (Exception e) {
} finally {
if(null != is) {
try {
is.close();
} catch (IOException e) {}
}
}
return value;
}
private static String bytesToHexString(byte[] src){
StringBuilder builder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
String hv;
for (int i = 0; i < src.length; i++) {
hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();
if (hv.length() < 2) {
builder.append(0);
}
builder.append(hv);
}
return builder.toString();
}
public static void main(String[] args) throws Exception {
final String fileType = getFileType("D:/apache-tomcat-6.0.35.tar.gz");
System.out.println(fileType);
}
}
java file 获取文件类型_Android中Java根据文件头获取文件类型相关推荐
- php读取某类型文件代码,php代码实现读取文件头判断文件类型
php代码实现读取文件头判断文件类型,支持图片.rar.exe等后缀. 案例: //为图片的路径可以用d:/upload/11.jpg等绝对路径 $file = fopen($filename, &q ...
- java判断文件头_java通过文件头来判断文件类型
importjava.io.FileInputStream;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map. ...
- python 通过文件头获取文件类型mimetype
一.MIME Type是什么? 资源的媒体类型 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序打开 ...
- 根据文件头判断文件真实类型,让更改后缀的文件无所遁形!
MultipartFile转为File package cn.com.ebidding.web.file.util; import org.springframework.web.multipart. ...
- python如何区分文件类型_python通过文件头判断文件类型
对于提供上传的服务器,需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,避免不必要的麻烦. 分享代码如下 import struct # 支持文件类型 # 用16进 ...
- mysql文件头标记_PHP根据文件头检测文件类型
文件签名一般都在文件的头部,如果你用十六进制方式查看文件,你就可以看到文件的一些签名信息.如用uestudio以十六进制方式查看zip格式的文件,其文件内容头部有50 4B 03 04这样的十六进制信 ...
- python文件名按数字排序_用Python按照文件的名字中包含的数字排序出文件
使用Python按照文件的名字中包含的数字排序出文件 原来的样式: file_list = ['第10周成绩.xlsx', '第11周成绩.xlsx', '第12周成绩.xlsx', '第13周成绩. ...
- 【CTF杂项】常见文件文件头文件尾格式总结及各类文件头
文件头文件尾总结 JPEG (jpg), 文件头:FFD8FF 文件尾:FF D9 PNG (png), ...
- 常见的文件头、文件尾
在这分享下常见的文件头和文件尾吧: type 文件头 文件尾 JPEG (jpg) FF D8 FF FF D9 PNG (png) 89 50 4E 47 AE 42 60 82 GIF (gif) ...
最新文章
- 词向量, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)
- Java中获取路径的各种方法
- python 模拟微信浏览器请求_使用Chrome修改user agent模拟微信内置浏览器
- 智能手环功能模块设计_基于STM32实现智能手环设计
- .NET Core开发日志——配置
- 【Linux环境】简单Shell脚本实现定时备份文件、压缩、删除超时文件操作(showDoc文件备份脚本举例)
- OpenCV展开二维相位图
- Mybatis之占位符与拼接符
- 通用印刷体文字识别_印刷体文字识别(汉字)中文符的分割
- Skyline软件二次开发初级——1如何在web页面中添加控件和加载三维地图数据
- 聚观早报 | 华为官宣新机Pocket S;苹果旗舰店开售智能门锁
- linux kettle运行作业,kettle之linux使用kettle
- 中间状态+三方预约下单接口测试项目
- CF1442D Sum 分治 背包dp
- 16S rRNArDNA测序分析
- MATLAB实现最小二乘法
- NSSCTF Round#4 Web WP
- Qt5.6.3交叉编译
- 【转】STL之父访谈录
- AIOT OS设计思考