文件的真实类型如何利用java进行判断

  介绍

文件的真实类型如何利用java进行判断?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体代码如下:

包com.zhuifeng.util.excel;
  
  进口java.io.FileInputStream;
  进口java.io.IOException;
  进口java.util.HashMap;/* *
  * @author guoxk
  *
  *类描述:获取和判断文件头信息
  * |——文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。
  * |——头文件作为一种包含功能函数,数据接口声明的载体文件,用于保存程序的声明(声明),而定义文件用于保存程序的实现(实现)。
  * |——为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。
  *
  */公开课CheckExcelFileTypeUtil {//缓存文件头信息——文件头信息
  公共静态最终HashMap<字符串,String>mFileTypes=new HashMap<字符串,String> ();
  静态{//图片
  mFileTypes.put (“FFD8FF",“jpg");
  mFileTypes.put (“89504 e47",“png");
  mFileTypes.put (“47494638”,“gif");
  mFileTypes.put (“49492 a00",“tif");
  mFileTypes.put (“424 d",“bmp");//mFileTypes.put (“41433130”,“dwg");//CAD
  mFileTypes.put (“38425053”,“psd");
  mFileTypes.put (“7 b5c727466",“rtf");//日记本
  mFileTypes.put (“3 c3f786d6c",“xml");
  mFileTypes.put (“68746 d6c3e",“html");
  mFileTypes.put (“44656 c69766572792d646174653a",“eml");//邮件
  mFileTypes.put (“D0CF11E0",“doc");
  mFileTypes.put (“D0CF11E0",“xls");//excel2003版本文件
  mFileTypes.put (“5374616 e64617264204a",“mdb");
  mFileTypes.put (“252150532 d41646f6265",“ps");
  mFileTypes.put (“255044462 d312e",“pdf");
  mFileTypes.put (“504 b0304",“docx");
  mFileTypes.put (“504 b0304",“xlsx");//excel2007以上版本文件
  mFileTypes.put (“52617221”,“rar");
  mFileTypes.put (“57415645”,“wav");
  mFileTypes.put (“41564920”,“avi");
  mFileTypes.put (“2 e524d46",“rm");
  mFileTypes.put (“000001 ba",“mpg");
  mFileTypes.put (“000001 b3",“mpg");
  mFileTypes.put (“6 d6f6f76",“mov");
  mFileTypes.put (“3026 b2758e66cf11",“asf");
  mFileTypes.put (“4 d546864",“mid");
  mFileTypes.put (“1 f8b08",“gz");
  }/* *
  * @author guoxk
  *
  *方法描述:根据文件路径获取文件头信息
  * @param filePath文件路径
  * @return文件头信息
  */getFileType公共静态字符串(字符串filePath) {//System.out.println (getFileHeader (filePath));//System.out.println (mFileTypes.get (getFileHeader (filePath)));
  返回mFileTypes.get (getFileHeader (filePath));
  }/* *
  * @author guoxk
  *
  *方法描述:根据文件路径获取文件头信息
  * @param filePath文件路径
  * @return文件头信息
  */getFileHeader公共静态字符串(字符串filePath) {
  FileInputStream=零;
  字符串值=https://www.yisu.com/zixun/null;
  尝试{
  是=new FileInputStream (filePath);
  byte [] b=新的字节[4];/*
  * int read()从此输入流中读取一个数据字相关性节阅读(byte [] b)从此输入流中将最多b.length
  *个字节的数据读入一个字节数组中,int读(byte [] b, int, int len)
  *从此输入流中将最多len个字节的数据读入一个字节数组中。
  */是多少。读(b, 0, b.length);
  值=bytesToHexString (b);
  }捕捉(异常e) {
  最后}{
  如果(零!=){
  尝试{
  is.close ();
  }捕捉(IOException e) {
  }
  }
  }
  返回值;
  }/* *
  * @author guoxk
  *
  *方法描述:将要读取文件头信息的文件的字节数组转换成字符串类型表示
  * @param src要读取文件头信息的文件的字节数组
  * @return文件头信息
  */私有静态字符串bytesToHexString (byte [] src) {
  StringBuilder builder=new StringBuilder ();
  如果(src==null | | src。长度<=0){
  返回null;
  }
  字符串高压;
  for (int i=0;我文件的真实类型如何利用java进行判断