知识大全 Java根据文件头获取文件类型

Posted 文件

篇首语:生活就是这样,别人看结果,自己撑过程。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java根据文件头获取文件类型相关的知识,希望对你有一定的参考价值。

Java根据文件头获取文件类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  件头是位于文件开头的一段承担一定任务的数据 一般都在开头的部分 头文件作为一种包含功能函数 数据接口声明的载体文件 用于保存程序的声明(declaration) 而定义文件用于保存程序的实现 (implementation)

  为了解决在用户上传文件的时候在服务器端判断文件类型的问题 故用获取文件头的方式 直接读取文件的前几个字节 来判断上传文件是否符合格式 具体代码如下

  Java代码 :

  package test day io;

  import java io FileInputStream;

  import java io IOException;

  import java util HashMap;

  /**

  * 获取和判断文件头信息

  *

  * @author bigbird

  *

  */

  public class FileType

  //缓存文件头信息 文件头信息

  public static final HashMap<String String> mFileTypes = new HashMap<String String>()

  static

  // images

  mFileTypes put( FFD FF jpg )

  mFileTypes put( E png )

  mFileTypes put( gif )

  mFileTypes put( A tif )

  mFileTypes put( D bmp )

  //

  mFileTypes put( dwg ) // CAD

  mFileTypes put( psd )

  mFileTypes put( B C rtf ) // 日记本

  mFileTypes put( C F D C xml )

  mFileTypes put( D C E )

  mFileTypes put( C D A eml ) // 邮件

  mFileTypes put( D CF E doc )

  mFileTypes put( E A mdb )

  mFileTypes put( D F ps )

  mFileTypes put( D E pdf )

  mFileTypes put( B docx )

  mFileTypes put( rar )

  mFileTypes put( wav )

  mFileTypes put( avi )

  mFileTypes put( E D rm )

  mFileTypes put( BA mpg )

  mFileTypes put( B mpg )

  mFileTypes put( D F F mov )

  mFileTypes put( B E CF asf )

  mFileTypes put( D mid )

  mFileTypes put( F B gz )

  mFileTypes put( )

  mFileTypes put( )

  

  /**

  * 根据文件路径获取文件头信息

  *

  * @param filePath

  *            文件路径

  * @return 文件头信息

  */

  public static String getFileType(String 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[ ];

  is read(b 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 <= )

  return null;

  

  String hv;

  for (int i = ; i < src length; i++)

  // 以十六进制(基数 )无符号整数形式返回一个整数参数的字符串表示形式 并转换为大写

  hv = Integer toHexString(src[i] & xFF) toUpperCase()

  if (hv length() < )

  builder append( )

  

  builder append(hv)

  

  return builder toString()

  

  public static void main(String[] args) throws Exception

  final String fileType = getFileType( E:/读书笔记/Java编程思想读书笔记 docx )

  System out println(fileType)

  

cha138/Article/program/Java/hx/201311/25980

相关参考

知识大全 Java对话框获取目录、文件路径

Java对话框获取目录、文件路径  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  publicFi

知识大全 在JAVA文件中获取该项目的相对路径

在JAVA文件中获取该项目的相对路径  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 Java获取网络文件并插入数据库

Java获取网络文件并插入数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  抓取各大网站的数

知识大全 Java实现获取指定路径下的指定格式的文件

Java实现获取指定路径下的指定格式的文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取指

知识大全 头文件生成器-javah.exe

  javah头文件生成器  javah程序创建C头文件和存根文件这些是把本地C成员函数包入java所需要的被创建的头文件给出了有关java类的信息这些信息是C成员函数与java类交换数据所必需的存根

知识大全 PHP取二进制文件头快速判断文件类型

PHP取二进制文件头快速判断文件类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一般我们都是

知识大全 java如何创建jar文件

  并不是所有类型的Java应用程序都能打包到单独的一个JAR文件中去必须符合一定的条件一个Java应用程序的所有文件才能打包到一个文件中去另外JAR文件有两种一种是有清单(manifest)文件的一

知识大全 PHP 获取文件权限函数介绍

PHP获取文件权限函数介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!以下是对PHP中的获取文件

知识大全 在*.SQL文件里获取并使用变量

在*.SQL文件里获取并使用变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  熟悉Oracle

知识大全 C# 获取网页html源文件

C#获取网页html源文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ///<summ