java判断文件格式_java判断检验各种文件类型,如gz、txt等
java判断检验各种文件类型,通过读取文件头(前4位),可判断gz等格式,代码如下:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
/**
* 获取和判断文件头信息
*
* @author Sud
*
*/
public class GetTypeByHead {
// 缓存文件头信息-文件头信息
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", "docx");
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("4D5A9000", "exe/dll");
mFileTypes.put("75736167", "txt");
}
/**
* 根据文件路径获取文件头信息
*
* @param filePath
* 文件路径
* @return 文件头信息
*/
public static String getFileType(String filePath) {
System.out.println(getFileHeader(filePath));
System.out.println(mFileTypes.get(getFileHeader(filePath)));
return mFileTypes.get(getFileHeader(filePath));
}
/**
* 根据文件路径获取文件头信息
*
* @param filePath
* 文件路径
* @return 文件头信息
*/
public static String getFileHeader(String filePath) {
FileInputStream is = null;
String value = null;
try {
is = new FileInputStream(filePath);
byte[] b = new byte[4];
/*
* int read() 从此输入流中读取一个数据字节。 int read(byte[] b) 从此输入流中将最多 b.length
* 个字节的数据读入一个 byte 数组中。 int read(byte[] b, int off, int len)
* 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
*/
is.read(b, 0, b.length);
value = bytesToHexString(b);
} catch (Exception e) {
} finally {
if (null != is) {
try {
is.close();
} catch (IOException e) {
}
}
}
return value;
}
/**
* 将要读取文件头信息的文件的byte数组转换成string类型表示
*
* @param src
* 要读取文件头信息的文件的byte数组
* @return 文件头信息
*/
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++) {
// 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();
if (hv.length() < 2) {
builder.append(0);
}
builder.append(hv);
}
System.out.println(builder.toString());
return builder.toString();
}
public static void main(String[] args) throws Exception {
final String fileType = getFileType("D:\\Ry4S_JAVA.dll");
System.out.println(fileType);
}
}
java判断文件格式_java判断检验各种文件类型,如gz、txt等相关推荐
- java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...
我们经常会遇到读取文件内容的情况,就需要判断文件是否为文本文件,及文件编码格式,防止无法读取内容或乱码出现情况. 根据文件扩展名判定不太准确,可能会遇到未知扩展名或被修改了扩展名,下面的测试类使用文件 ...
- java校验文件格式_java验证文件格式工具类(获取文件真实格式)
, String>();privateVerifyFileType(){} static{ getAllFileType();//初始化文件类型信息} /*** Discription:[get ...
- java 时间判断大小_java判断时间大小
//构造日期格式yyyy-MM-NN SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date d ...
- java 指定文件格式_java删除指定目录下指定格式文件的方法
本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import ...
- java文本压缩算法_java 什么算法压缩文件最小
展开全部 有三种方式实现java压缩: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称32313133353236313431303231363 ...
- java 重命名_Java如何重命名文件?
在java编程中,如何重命名文件? 此示例演示如何使用File类的oldName.rename To(new_Name)方法重命名文件. package com.yiibai; import java ...
- java pdf文件下载_Java后台返回PDF文件预览下载
Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...
- java 内部变量_java 中的内置数据类型
1, 基本数据类型 Java是强类型语言, 对于每一种数据都定义了类型,基本数据类型分为数值型,字符型,布尔型.数值型又分为了整型和浮点型. 整型又分为byte, int, short long. ...
- java int 运算符_Java 位运算符和 int 类型的实现
Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.=.<= # 逻辑运算符 && ...
最新文章
- 惊艳了!升级版的 APDrawing,秒让人脸照变线条肖像画
- hdu2102 水搜索
- ThunderSoft Flash to HTML5中文版
- php有意思知识分享,分享几个有意思的数组方法
- Module.h 网狐的“com”工具箱
- 结合电商支付业务一文搞懂DDD
- linux df命令功能,Linux df命令简要介绍
- 【渝粤题库】广东开放大学 实用文写作 形成性考核
- faster-rcnn tensorflow windows python 训练自己数据
- 在SqlMapConfig.xml 中typeAliases与properties的关系
- IOS UI TabBar标签栏的使用
- DT大数据梦工厂视频资源
- psd.js 解析PSD文件
- python 广告联盟_利用京东联盟API获取自定义推广链接
- endnote找不到国标_电动车新国标实施首日,实况如何?遇到这些问题别急!
- oracle中栓锁,oracle 闩锁介绍
- 要么忍,要么狠,要么滚
- Process ID 59:0 owns resources that are blocking processes on Scheduler 2
- mac mi 芯片 安装ps
- scikit-learn : LASSO