1、创建测试类(FileUtils.java)

package com.jeff.utils;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;public class FileUtils {public static final String TYPE_JPG = "jpg";public static final String TYPE_GIF = "gif";public static final String TYPE_PNG = "png";public static final String TYPE_BMP = "bmp";public static final String TYPE_UNKNOWN = "unknown";/*** * @description: 根据文件流判断图片类型* @author: Jeff* @date: 2019年12月7日* @param fis 文件输入流* @return*/public static String getPicType(FileInputStream fis) {// 读取文件的前几个字节来判断图片格式byte[] b = new byte[4];try {fis.read(b, 0, b.length);String type = bytesToHexString(b).toUpperCase();if (type.contains("FFD8FF")) {return TYPE_JPG;} else if (type.contains("89504E47")) {return TYPE_PNG;} else if (type.contains("47494638")) {return TYPE_GIF;} else if (type.contains("424D")) {return TYPE_BMP;} else {return TYPE_UNKNOWN;}} catch (IOException e) {e.printStackTrace();} finally {if (fis != null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}return null;}/*** * @description: byte数组转换成16进制字符串* @author: Jeff* @date: 2019年12月7日* @param src* @return*/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) {try {System.out.println("图片1格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\jie.jpg"))));System.out.println("图片2格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\1.png"))));System.out.println("图片3格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\2.gif"))));System.out.println("图片4格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\3.bmp"))));System.out.println("图片5格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\jie.png"))));} catch (FileNotFoundException e) {e.printStackTrace();}}}

2、控制台输出结果

Java判断图片文件格式,不是根据文件后缀判断相关推荐

  1. js根据文件后缀判断文件类型

    有时候需要前端根据文件后缀判断文件类型 下面是代码,不足之处还望补充~ /*** @description: 根据后缀判断文件类型* @param {String} fileName 文件名称* @r ...

  2. 获取 视频 音频 及其他文件的真实信息(不靠文件后缀判断) (getID3())

    ID3,一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信 息,ID3信息分为两个版本,v1和v2版. 其中:v1版的 ...

  3. react 判断图片是否加载完成_如何判断图片(img)是否已经加载成功--基于react...

    我过去经常会问: 有没有一种方法去判断子类组件是否已经渲染完成? 答案当然是有的啦  componentDidMount(),在react component 已经渲染完成时 就会调用 compone ...

  4. java 拷贝图片拒绝访问_急!!!!文件夹里的图片打不开,也复制不了 现实拒绝访问,被写保护,怎么打开啊,很重大...

    **************************************************************************************************** ...

  5. java 图片文件 格式转换_Java的图片文件格式转换和线性缩放

    Java的图片文件格式转换和线性缩放 来源:68design.net 2007年07月13日 08:31 图片文件格式转换最核心的问题就是要解决各种图片格式的编码和解码,推荐用jimi包,可从 htt ...

  6. js下载文件并修改文件名 / js判断文件后缀

    js下载文件并修改文件名 / js判断文件后缀 代码如下(示例): //handlerName:文件名 filePath:下载路径downloadFile (handlerName, filePath ...

  7. python 判断图片的类型

    仅仅根据文件后缀判断文件类型显然不准,在python有一个内置模块imghdr可以用来判断图片的真实类型.代码如下: import imghdr imgType = imghdr.what(image ...

  8. python判断图片类型_Python判断图片真实类型

    仅仅根据文件后缀判断文件类型显然不准,在python有一个内置模块imghdr可以用来判断图片的真实类型.代码如下: import imghdr imgType = imghdr.what(image ...

  9. python判断文件后缀_Python 判断文件后缀是否被篡改

    自己用Python写了个对文件后缀判断的脚本, 目前支持的文件类型还不是很多,还有待完善. 支持Microsoft Office (.pptx .docx .xlsx) Pyhton版本为3.6 #! ...

  10. java 获取file后缀,Java获取文件后缀的方法

    在对文件进行操作的时候,我们经常需要用到文件的后缀.但是Java API中并没有提供获取文件后缀的方法.下面的工具方法可以帮助我们实现这个目的. 方法1 代码示例: package org.4spac ...

最新文章

  1. 关于kali相关的参考文章
  2. 飞飞php2.8采集失败_飞飞影视系统火车头采集器采集发布免登录接口
  3. 机器学习 vs. 深度学习
  4. 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制
  5. Linux下修改时区
  6. 是==和!=相互依赖?
  7. MySQL------存储过程的使用
  8. heavy dark--读《《暗时间》》
  9. python help帮助文档
  10. 无线渗透----扫描附近WiFi(windows系统)
  11. 前端-鼠标经过后图标变色
  12. Xray安全评估工具使用
  13. php身份证实名认证接口
  14. 一文讲透,商业智能BI的未来形态,发展现状及前景分析|推荐收藏
  15. 内网架设FTP服务器(serv-u)
  16. Bazel Remote Caching
  17. MATLAB绘制长方体
  18. uni-app 使用 jsencrypt
  19. 电磁兼容试验项目之谐波电流试验
  20. Qt for Mac中文显示问题

热门文章

  1. android开发一款app的流程
  2. 2021年超全微博营销全攻略抢先看!
  3. 植物大战僵尸修改器 - 简易版
  4. webrtc音频处理源码概述
  5. python爬虫-《笔趣看》网小说《悟空看私聊》
  6. samba服务端配置和客户端使用【含windows共享文件到linux】
  7. Git和Code Review流程
  8. 新品上架免费推广,新品上架前的准备
  9. 企业网站建设为什么要定制开发?
  10. Github和Git是啥意思?下面来简单了解下。