根据文件头数据判断文件类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据⽂件头数据判断⽂件类型
现有⼀⽂件,其扩展名未知或标记错误。假设它是⼀个正常的、⾮空的⽂件,且将扩展名更正后可以正常使⽤,那么,如何判断它是哪种类型的⽂件?
在后缀未知,或者后缀被修改的⽂件,依然通过⽂件头来判断该⽂件究竟是什么⽂件类型。我们可以使⽤⼀个⽂本编辑⼯具如UltraEdit打开⽂件(16进制模式下),然后看⽂件头是什么字符,以下是常见⽂件类型的⽂件头字符(16进制),希望对你有帮助:
JPEG (jpg),⽂件头:FFD8FF
PNG (png),⽂件头:89504E47
GIF (gif),⽂件头:47494638
TIFF (tif),⽂件头:49492A00
Windows Bitmap (bmp),⽂件头:424D
CAD (dwg),⽂件头:41433130
Adobe Photoshop (psd),⽂件头:38425053
Rich Text Format (rtf),⽂件头:7B5C727466
XML (xml),⽂件头:3C3F786D6C
HTML (html),⽂件头:68746D6C3E
Email [thorough only] (eml),⽂件头:44656C69766572792D646174653A
Outlook Express (dbx),⽂件头:CFAD12FEC5FD746F
Outlook (pst),⽂件头:2142444E
MS Word/Excel (xls.or.doc),⽂件头:D0CF11E0
MS Access (mdb),⽂件头:5374616E64617264204A
WordPerfect (wpd),⽂件头:FF575043
Postscript (eps.or.ps),⽂件头:252150532D41646F6265
Adobe Acrobat (pdf),⽂件头:255044462D312E
Quicken (qdf),⽂件头:AC9EBD8F
Windows Password (pwl),⽂件头:E3828596
ZIP Archive (zip),⽂件头:504B0304
RAR Archive (rar),⽂件头:52617221
Wave (wav),⽂件头:57415645
AVI (avi),⽂件头:41564920
Real Audio (ram),⽂件头:2E7261FD
Real Media (rm),⽂件头:2E524D46
MPEG (mpg),⽂件头:000001BA
MPEG (mpg),⽂件头:000001B3
Quicktime (mov),⽂件头:6D6F6F76
Windows Media (asf),⽂件头:3026B2758E66CF11
MIDI (mid),⽂件头:4D546864
下⾯在提供⼀个⽹上使⽤java写的根据头⽂件码判断⽂件类型
package com;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class FileType {
public final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();
private FileType(){}
static{
getAllFileType(); //初始化⽂件类型信息
}
/**
* Discription:[getAllFileType,常见⽂件头信息]
*/
private static void getAllFileType()
{
FILE_TYPE_MAP.put("ffd8ffe000104a464946", "jpg"); //JPEG (jpg)
FILE_TYPE_MAP.put("89504e470d0a1a0a0000", "png"); //PNG (png)
FILE_TYPE_MAP.put("47494638396126026f01", "gif"); //GIF (gif)
FILE_TYPE_MAP.put("49492a00227105008037", "tif"); //TIFF (tif)
FILE_TYPE_MAP.put("424d228c010*********", "bmp"); //16⾊位图(bmp)
FILE_TYPE_MAP.put("424d8240090000000000", "bmp"); //24位位图(bmp)
FILE_TYPE_MAP.put("424d8e1b030000000000", "bmp"); //256⾊位图(bmp)
FILE_TYPE_MAP.put("41433130313500000000", "dwg"); //CAD (dwg)
FILE_TYPE_MAP.put("3c21444f435459504520", "html"); //HTML (html)
FILE_TYPE_MAP.put("3c21646f637479706520", "htm"); //HTM (htm)
FILE_TYPE_MAP.put("48544d4c207b0d0a0942", "css"); //css
FILE_TYPE_MAP.put("696b2e71623d696b2e71", "js"); //js
FILE_TYPE_MAP.put("7b5c727466315c616e73", "rtf"); //Rich Text Format (rtf)
FILE_TYPE_MAP.put("38425053000100000000", "psd"); //Photoshop (psd)
FILE_TYPE_MAP.put("46726f6d3a203d3f6762", "eml"); //Email [Outlook Express 6] (eml)