欢迎来到鲍余网络官网 官方微信 官方微博 IDC网站
深圳网站建设官方微信

网络之路,从这里开始

热线电话

18576678080 / 0755-85278776

网站知识
首页 > 网站知识 > 深圳建网站:怎样用java判断(检验)各种文件类型,如gz、txt等

深圳建网站:怎样用java判断(检验)各种文件类型,如gz、txt等

  • 所属分类: 网站知识
  • 发布时间:2017-02-23 13:48:52
  • 作者: 鲍余网络
  • 点击量:

具深圳网站建设公司鲍余网络的技术工程师介绍:java判断检验各种文件类型,通过读取文件头(前4位),可判断gz等格式,代码如下:


Java代码  收藏代码
  1. import java.io.FileInputStream;    
  2. import java.io.IOException;    
  3. import java.util.HashMap;    
  4.     
  5. /**  
  6.  * 获取和判断文件头信息  
  7.  *   
  8.  * @author Sud  
  9.  *   
  10.  */    
  11. public class GetTypeByHead {    
  12.     // 缓存文件头信息-文件头信息    
  13.     public static final HashMap<String, String> mFileTypes = new HashMap<String, String>();    
  14.     static {    
  15.         // images    
  16.         mFileTypes.put("FFD8FF""jpg");    
  17.         mFileTypes.put("89504E47""png");    
  18.         mFileTypes.put("47494638""gif");    
  19.         mFileTypes.put("49492A00""tif");    
  20.         mFileTypes.put("424D""bmp");    
  21.         //    
  22.         mFileTypes.put("41433130""dwg"); // CAD    
  23.         mFileTypes.put("38425053""psd");    
  24.         mFileTypes.put("7B5C727466""rtf"); // 日记本    
  25.         mFileTypes.put("3C3F786D6C""xml");    
  26.         mFileTypes.put("68746D6C3E""html");    
  27.         mFileTypes.put("44656C69766572792D646174653A""eml"); // 邮件    
  28.         mFileTypes.put("D0CF11E0""doc");    
  29.         mFileTypes.put("5374616E64617264204A""mdb");    
  30.         mFileTypes.put("252150532D41646F6265""ps");    
  31.         mFileTypes.put("255044462D312E""pdf");    
  32.         mFileTypes.put("504B0304""docx");    
  33.         mFileTypes.put("52617221""rar");    
  34.         mFileTypes.put("57415645""wav");    
  35.         mFileTypes.put("41564920""avi");    
  36.         mFileTypes.put("2E524D46""rm");    
  37.         mFileTypes.put("000001BA""mpg");    
  38.         mFileTypes.put("000001B3""mpg");    
  39.         mFileTypes.put("6D6F6F76""mov");    
  40.         mFileTypes.put("3026B2758E66CF11""asf");    
  41.         mFileTypes.put("4D546864""mid");    
  42.         mFileTypes.put("1F8B08""gz");    
  43.         mFileTypes.put("4D5A9000""exe/dll");    
  44.         mFileTypes.put("75736167""txt");    
  45.     }    
  46.     
  47.     /**  
  48.      * 根据文件路径获取文件头信息  
  49.      *   
  50.      * @param filePath  
  51.      *            文件路径  
  52.      * @return 文件头信息  
  53.      */    
  54.     public static String getFileType(String filePath) {    
  55.         System.out.println(getFileHeader(filePath));    
  56.         System.out.println(mFileTypes.get(getFileHeader(filePath)));    
  57.         return mFileTypes.get(getFileHeader(filePath));    
  58.     }    
  59.     
  60.     /**  
  61.      * 根据文件路径获取文件头信息  
  62.      *   
  63.      * @param filePath  
  64.      *            文件路径  
  65.      * @return 文件头信息  
  66.      */    
  67.     public static String getFileHeader(String filePath) {    
  68.         FileInputStream is = null;    
  69.         String value = null;    
  70.         try {    
  71.             is = new FileInputStream(filePath);    
  72.             byte[] b = new byte[4];    
  73.             /*  
  74.              * int read() 从此输入流中读取一个数据字节。 int read(byte[] b) 从此输入流中将最多 b.length  
  75.              * 个字节的数据读入一个 byte 数组中。 int read(byte[] b, int off, int len)  
  76.              * 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。  
  77.              */    
  78.             is.read(b, 0, b.length);    
  79.             value = bytesToHexString(b);    
  80.         } catch (Exception e) {    
  81.         } finally {    
  82.             if (null != is) {    
  83.                 try {    
  84.                     is.close();    
  85.                 } catch (IOException e) {    
  86.                 }    
  87.             }    
  88.         }    
  89.         return value;    
  90.     }    
  91.     
  92.     /**  
  93.      * 将要读取文件头信息的文件的byte数组转换成string类型表示  
  94.      *   
  95.      * @param src  
  96.      *            要读取文件头信息的文件的byte数组  
  97.      * @return 文件头信息  
  98.      */    
  99.     private static String bytesToHexString(byte[] src) {    
  100.         StringBuilder builder = new StringBuilder();    
  101.         if (src == null || src.length <= 0) {    
  102.             return null;    
  103.         }    
  104.         String hv;    
  105.         for (int i = 0; i < src.length; i++) {    
  106.             // 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写    
  107.             hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();    
  108.             if (hv.length() < 2) {    
  109.                 builder.append(0);    
  110.             }    
  111.             builder.append(hv);    
  112.         }    
  113.         System.out.println(builder.toString());    
  114.         return builder.toString();    
  115.     }    
  116.     
  117.     public static void main(String[] args) throws Exception {    
  118.         final String fileType = getFileType("D:\\Ry4S_JAVA.dll");    
  119.         System.out.println(fileType);    
  120.     }    
  121. }    

 

推荐阅读:JS代码属性详解:window.location



深圳网站建设专家:鲍余网络
  8年专注:网站设计、网站建设、网站开发、营销型网站建设、营销型网站设计、APP开发、软件开发、微信开发、公众号开发、互动营销、响应式网站建设开发、响应式网站、互联网形象设计、空间租用、域名注册、虚拟主机、服务器托管、网站维护等服务。

鲍余案例:稳健医疗、格力地产、珠海气象局、大昌行集团等知名企业

咨询热线:0755-3693 8799  

咨询QQ8554 3483
联系人:鲍先生:

电话:185 7667 8080  

微信:185 7667 8080

地址:深圳市龙华新区民治大道沙元埔大厦121205-1228室(民治地铁站D出口对面)

网址:www.zgbywl.com


关键词: 网站建设(83) 网站制作(57) 建网站(43) 程序教程(11) JAVA教程(4)

相关文章:

有做网站需求?   联系客服经理 提交需求 直接拨打业务电话:0755-85278776