当前位置: 首页 > news >正文

网站模板化24小时最新军事新闻

网站模板化,24小时最新军事新闻,网站开发如何做账务处理,国内较好的网站开发商城在文件处理和管理中,确定文件的类型是一个常见的需求。虽然文件扩展名可以提供一些信息,但并不总是可靠的。魔数(Magic Numbers)是一种更为准确的方法,通过检查文件开头的特定字节序列来识别文件类型。本文将介绍如何在…

在文件处理和管理中,确定文件的类型是一个常见的需求。虽然文件扩展名可以提供一些信息,但并不总是可靠的。魔数(Magic Numbers)是一种更为准确的方法,通过检查文件开头的特定字节序列来识别文件类型。本文将介绍如何在Java中实现使用魔数判断文件类型的功能。

什么是魔数?

魔数是文件格式的标识符,通常位于文件的开头部分。每种文件格式都有其独特的魔数。例如:

  • JPEG 文件以 FF D8 开头。
  • PNG 文件以 89 50 4E 47 开头。
  • PDF 文件以 %PDF 开头。
  • ZIP 文件以 50 4B 开头。

Java实现示例

public enum FileTypeEnum {/*** JPEG*/JPEG("JPEG", "FFD8FF"),/*** PNG*/PNG("PNG", "89504E47"),/*** GIF*/GIF("GIF", "47494638"),/*** TIFF*/TIFF("TIFF", "49492A00"),/*** Windows bitmap*/BMP("BMP", "424D"),/*** CAD*/DWG("DWG", "41433130"),/*** Adobe photoshop*/PSD("PSD", "38425053"),/*** Rich Text Format*/RTF("RTF", "7B5C727466"),/*** XML*/XML("XML", "3C3F786D6C"),/*** HTML*/HTML("HTML", "68746D6C3E"),/*** Outlook Express*/DBX("DBX", "CFAD12FEC5FD746F "),/*** Outlook*/PST("PST", "2142444E"),/*** doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db*/OLE2("OLE2", "0xD0CF11E0A1B11AE1"),/*** Microsoft Word/Excel*/XLS_DOC("XLS_DOC", "D0CF11E0"),/*** Microsoft Access*/MDB("MDB", "5374616E64617264204A"),/*** Word Perfect*/WPB("WPB", "FF575043"),/*** Postscript*/EPS_PS("EPS_PS", "252150532D41646F6265"),/*** Adobe Acrobat*/PDF("PDF", "255044462D312E"),/*** Windows Password*/PWL("PWL", "E3828596"),/*** ZIP Archive*/ZIP("ZIP", "504B0304"),/*** ARAR Archive*/RAR("RAR", "52617221"),/*** WAVE*/WAV("WAV", "57415645"),/*** AVI*/AVI("AVI", "41564920"),/*** Real Audio*/RAM("RAM", "2E7261FD"),/*** Real Media*/RM("RM", "2E524D46"),/*** Quicktime*/MOV("MOV", "6D6F6F76"),/*** Windows Media*/ASF("ASF", "3026B2758E66CF11"),/*** MIDI*/MID("MID", "4D546864"),/*** xlsx*/XLSX("XLSX", "504B0304"),/*** xls*/XLS("XLS", "D0CF11E0A1B11AE1");private String key;private String value;FileTypeEnum(String key, String value) {this.key = key;this.value = value;}public String getValue() {return value;}public String getKey() {return key;}
}
import java.io.IOException;
import java.io.InputStream;public class FileUtils {/*** 获取文件头** @param inputStream 输入流* @return 16 进制的文件投信息* @throws IOException io异常*/private static String getFileHeader(InputStream inputStream) throws IOException {byte[] b = new byte[28];inputStream.read(b, 0, 28);return bytes2hex(b);}/*** 将字节数组转换成16进制字符串** @param src 文件字节数组* @return 16进制字符串*/private static String bytes2hex(byte[] src) {StringBuilder stringBuilder = new StringBuilder("");if (src == null || src.length <= 0) {return null;}for (byte b : src) {int v = b & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}/*** 判断指定输入流是否是指定文件格式** @param inputStream  输入流* @param fileTypeEnum 文件格式枚举* @return true 是;false 否* @throws IOException io异常*/public static boolean isFileType(InputStream inputStream, FileTypeEnum fileTypeEnum) throws IOException {if (null == inputStream) {return false;}String fileHeader = getFileHeader(inputStream);return fileHeader.toUpperCase().startsWith(fileTypeEnum.getValue());}public static void main(String[] args) {}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;public class Test {public static void main(String[] args) {File file = new File("D:/1.xlsx");try (FileInputStream fileInputStream = new FileInputStream(file)) {if (FileUtils.isFileType(fileInputStream, FileTypeEnum.XLSX) || FileUtils.isFileType(fileInputStream, FileTypeEnum.XLS)) {System.out.println("文件类型匹配");} else {System.out.println("文件类型不匹配");}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}
http://www.yayakq.cn/news/27065/

相关文章:

  • 胶州哪家公司做网站网站 租用服务器
  • 濮阳佳杰网站建设巧用不对称卯兔科技西安网站建设
  • 高品质网站欣赏三合一网站开发有什么区别
  • 网站建设工作室图片网站制作尺寸
  • 做网站是学什么编程语言免费注册域名哪里有
  • 建设网站服务器怎么弄2023楼市回暖潮无望了
  • 怎样 管理网站网络免费推广平台
  • 孝感市门户网站管理中心三亚做网站
  • 网站备案怎么改校园推广是什么工作
  • 做推送好用的网站广州做手机网站建设
  • 网站后台文档单页网站 产品放哪
  • 大庆金思维科技网站开发网页视频怎么下载到电脑上
  • 集团网站策划深圳公司标牌制作
  • 企业网站管理的含义及内容网站注册地址
  • 商务网站信息审核的重要性在于阿里巴巴网站如何做免费推广
  • 如何免费建立官方网站wordpress搭建多人博客
  • 树莓派网站建设网站定制开发流程和功能
  • sqlite 做网站数据库响应式潍坊网站建设
  • 东莞app培训网站建设设计邦
  • 做网站的抬头怎么做房产网络平台
  • 黑客入侵别人网站做seo济南网站建设 推搜点
  • wordpress同步 说说seo推广培训
  • 公益平台网站怎么做二次开发机器人
  • 中国建设银行黄冈分行网站淘宝网站设计公司
  • 义务 网站建设龙岗中心城网站建设
  • 做设计的素材网站如何分析网站
  • 做网站建设公司怎么样北京网站备案查询
  • 盛唐网站建设简单大气静态网页模板
  • 十堰网站建设多少钱苏州网站定制
  • 外国域名注册很多网站天津建设工程信息网的ca花钱吗