`
美丽的小岛
  • 浏览: 309207 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

根据文件内容前几个字节,判断文件类型<知识点>

阅读更多

 常用文件的文件头如下: 

 

1. MIDI (mid),文件头:4D546864  

2.  JPEG (jpg),文件头:FFD8FF   

3.  PNG (png),文件头:89504E47   

4.  GIF (gif),文件头:47494638   

5.  TIFF (tif),文件头:49492A00   

6.  Windows Bitmap (bmp),文件头:424D   

7.  CAD (dwg),文件头:41433130   

8.  Adobe Photoshop (psd),文件头:38425053   

9.  Rich Text Format (rtf),文件头:7B5C727466   

10. XML (xml),文件头:3C3F786D6C   

11. HTML (html),文件头:68746D6C3E   

12. Email [thorough only] (eml),文件头:44656C69766572792D646174653A   

13. Outlook Express (dbx),文件头:CFAD12FEC5FD746F    

14. Outlook (pst),文件头:2142444E   

15. MS Word/Excel (xls.or.doc),文件头:D0CF11E0   

16. MS Access (mdb),文件头:5374616E64617264204A   

17. WordPerfect (wpd),文件头:FF575043   

18. Postscript (eps.or.ps),文件头:252150532D41646F6265   

19. Adobe Acrobat (pdf),文件头:255044462D312E   

20. Quicken (qdf),文件头:AC9EBD8F   

21. Windows Password (pwl),文件头:E3828596   

22. ZIP Archive (zip),文件头:504B0304   

23. RAR Archive (rar),文件头:52617221   

24. Wave (wav),文件头:57415645   

25. AVI (avi),文件头:41564920   

26. Real Audio (ram),文件头:2E7261FD   

27. Real Media (rm),文件头:2E524D46   

28. MPEG (mpg),文件头:000001BA   

29. MPEG (mpg),文件头:000001B3   

30. Quicktime (mov),文件头:6D6F6F76   

31. Windows Media (asf),文件头:3026B2758E66CF11   

 

写一个代码测试一下:

 

 

package com.lr.downlaod;

import java.io.FileInputStream;

public class TestDownload {

	public static String bytesToHexString(byte[] src) {
		StringBuilder stringBuilder = new StringBuilder();
		if (src == null || src.length <= 0) {
			return null;
		}
		for (int i = 0; i < src.length; i++) {
			int v = src[i] & 0xFF;
			String hv = Integer.toHexString(v);
			if (hv.length() < 2) {
				stringBuilder.append(0);
			}
			stringBuilder.append(hv);
		}
		return stringBuilder.toString();
	}

	public static void main(String[] args) throws Exception {
		FileInputStream is = new FileInputStream("G://lr//005.jpg");
		byte[] b = new byte[3];
		is.read(b, 0, b.length);
		System.out.println(bytesToHexString(b));

	}

}

 

 

 

 

 

 

分享到:
评论
3 楼 v韧竹v 2013-10-16  
那如何判断xls.or.doc文件类型呢?
2 楼 美丽的小岛 2012-08-22  
缥缈孤鸿 写道
实用

1 楼 缥缈孤鸿 2012-08-22  
实用

相关推荐

    根据头信息判断文件类型

    通过读取并解析文件的前几个字节,可以快速判断出文件的类型。 #### 2. 文件签名(File Signature) 文件签名是另一种表示魔术数字的方式,通常用十六进制表示。在上述代码示例中,`bytesToHexString`函数就是将...

    无头BOM的UTF8文件判断

    5. **文件判断**:判断文件是否为无头BOM的UTF-8文件,通常需要读取文件的前几个字节并进行检查。如果前三个字节是EF BB BF,则该文件带有BOM;如果没有,就认为是无BOM的UTF-8文件。 6. **编程实现**:在各种编程...

    文件操作的几个常用例子

    这里,我们将详细讨论标题和描述中提到的几个关键知识点,并结合标签"Delphi 文件操作"来深入理解这些概念。 首先,我们来看“判断文件名是否有效”。在Delphi中,可以使用`TFile.IsValidName`函数来检查一个文件名...

    Java实现按行分割大文件

    知识点6: 使用File的exists()方法判断文件是否存在 在分割文件的过程中,需要判断目标文件是否存在。如果文件不存在,需要创建文件。 知识点7: 使用IOException来处理异常 在分割文件的过程中,可能会出现...

    文件上传(判断bytes码)

    这个压缩包包含的内容似乎是为了实现一个特定的功能:通过判断文件的bytes码来确认文件类型,并进行安全的文件上传。以下是根据标题、描述和标签解析出的相关知识点。 首先,我们要了解什么是“bytes码”。在计算机...

    数据结构(C++)有关练习题

    &lt;br&gt;内容及步骤:&lt;br&gt;1、 设计一个图的类,采用临接表法进行存储,该图每个结点的数据类型类模板的模板参数进行定义(注:需先设计一个结点类Node);&lt;br&gt;2、 为该类分别设计一个实现深度优先搜索和广度优先搜索的成员...

    C++编写的分析Bmp文件程序源代码

    本篇将详细讲解C++编程语言如何分析BMP文件,并从提供的源代码出发,探讨其中的关键知识点。 首先,解析BMP文件通常分为以下几个步骤: 1. **文件头读取**:BMP文件以一个54字节的文件头开始,包括两个结构体——`...

    Java读取TXT文本文件乱码解决方案.doc

    可以通过读取文件的前几个字节来判断文件的编码格式。例如,对于 Unicode 编码,前两个字节是 FFFE,对于 UTF-8 编码,前三个字节是 EFBBBF 等。 本文提供了 Java 读取 TXT 文本文件乱码解决方案,并讨论了 TXT ...

    完整版文本文件字节集寻找替换.e.rar

    下面我们将深入探讨这个知识点。 首先,文本文件本质上是字节的集合,每个字符对应一个或多个字节。在ASCII编码中,每个字符由一个字节表示;而在Unicode编码(如UTF-8)中,某些字符可能需要多个字节来表示。因此...

    易语言从字节集取图片尺寸

    2. 分析图片格式:根据字节集的前几个字节判断图片的格式,比如JPEG、PNG、BMP等。 3. 解析头部信息:根据图片格式,找到并解析头部的宽度和高度信息。例如,JPEG图片的宽度和高度信息在SOF(Start of Frame)标记后...

    易语言创建大空白文件模块

    创建大空白文件主要涉及到以下几个知识点: 1. **文件操作**:易语言提供了丰富的文件操作函数,如`创建文件`、`写入文件`和`关闭文件`等。在创建大空白文件时,首先需要使用`创建文件`命令创建一个新的文件,指定...

    C代码实例:逆转字符

    #### 知识点解析 本篇文章主要介绍了一种通过C语言编程实现对二进制文件中的每个字节进行位逆转的技术,并探讨了在处理大文件时如何提高程序的执行效率。 #### 核心概念与技术细节 1. **位操作与位逆转**: - **...

    读取中英文混搭的文件

    2. 字符读取方法:描述中提到根据读取的第一个字节是否小于0来判断是英文还是中文,这个方法是基于C语言的文件读取函数fgetc返回的是一个int型值,而不是仅返回一个字节。由于文件存储时是以字节为单位,当读取到多...

    java文件夹及文件复制

    在Java编程语言中,文件和文件夹的复制是一项常见的任务,尤其在系统迁移...以上就是关于Java中使用递归复制文件和文件夹的核心知识点。通过理解这些概念和实践,你将能够有效地在Java程序中处理文件和目录的复制任务。

    文件编码检测静态库vs2012工程

    1. **预读取分析**:读取文件的前几个字节,根据字节序列判断可能的编码类型。 2. **概率模型**:使用统计模型,如N-gram,对不同编码的特征进行匹配,计算概率。 3. **上下文分析**:对于不确定的情况,可能需要...

    利用PHP判断文件是否为图片的方法总结共7页.pdf.zi

    可以尝试读取文件的前几个字节,这些字节通常包含了文件类型的信息。例如,JPEG文件以`FF D8 FF`开头,PNG以`89 50 4E 47`开头。如果找到这些特征字节,可以判断为相应的图片格式。 3. **GD库或Imagick扩展**: ...

    java识别文件编码格式

    4. **尝试性读取**:识别文件编码的一种方法是通过尝试读取文件的前几个字节并匹配已知的字节顺序标记(BOM)。例如,UTF-8的BOM是EF BB BF,UTF-16LE的BOM是FF FE,UTF-16BE的BOM是FE FF。 5. **CharsetDetector**...

    c__读写文件.doc

    fout &lt;&lt; setw(20) &lt;&lt; "家庭地址:" &lt;&lt; "河南郑州" &lt;&lt; endl; fout.close(); // 关闭文件 ``` ##### 2. 文件操作状态检查 - **检查文件是否成功打开**: - 使用 `if (f)` 或 `if (f.good())` 来判断文件是否成功...

    php上传文件常见问题总结

    单纯地依赖文件扩展名来判断文件类型是不安全的,因为文件名可以被轻易更改。为了更安全地获取文件类型,建议使用PHP的`fileinfo`扩展。这个扩展能够通过分析文件的内容来确定其正确的MIME类型。在服务器上安装并...

    易语言按条件复制文件源码

    在易语言中实现这一功能,你需要理解以下几个核心知识点: 1. **文件操作**:易语言提供了丰富的文件操作命令,如`打开文件`、`读取文件`、`写入文件`、`关闭文件`等。要复制文件,首先需要读取源文件的内容,然后...

Global site tag (gtag.js) - Google Analytics