`

java判断文件是否为图片文件

阅读更多
  public static final HashMap map = new HashMap();

    static {
        map.put("89504E47", "png");
        map.put("49492A00", "tif");
        map.put("FFD8FF", "jpg");
    }

    public static String getFileType(String filePath) {
        return (String) map.get(getFileHeader(filePath));
    }


    public static String getFileHeader(String filePath) {
        FileInputStream is = null;
        String value = null;
        try {
            is = new FileInputStream(filePath);
            byte[] b = new byte[4];
            /*
             * int read() 从此输入流中读取一个数据字节。 int read(byte[] b) 从此输入流中将最多 b.length
             * 个字节的数据读入一个 byte 数组中。 int read(byte[] b, int off, int len)
             * 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
             */
            is.read(b, 0, b.length);
            value = bytesToHexString(b);
        } catch (Exception e) {
        } finally {
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
        return value;
    }

    private static String bytesToHexString(byte[] src) {
        StringBuilder builder = new StringBuilder();
        if (src == null || src.length <= 0) {
            return null;
        }
        String hv;
        for (int i = 0; i < src.length; i++) {
            // 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
            hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();
            if (hv.length() < 2) {
                builder.append(0);
            }
            builder.append(hv);
        }
        // System.out.println(builder.toString()+"4");
        return builder.toString();
    }

    /**
     * ############################################################################
     */

    public static String getImageType(File srcFilePath) {
        FileInputStream imgFile;
        byte[] b = new byte[10];
        int l = -1;
        try {
            imgFile = new FileInputStream(srcFilePath);
            l = imgFile.read(b);
            imgFile.close();
        } catch (Exception e) {
            return null;
        }
        if (l == 10) {
            byte b0 = b[0];
            byte b1 = b[1];
            byte b2 = b[2];
            byte b3 = b[3];
            byte b6 = b[6];
            byte b7 = b[7];
            byte b8 = b[8];
            byte b9 = b[9];
            for (int i = 0; i < 10; i++) {
                System.out.println(b[i]);
            }
            if (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F') {
                return "gif";
            } else if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G') {
                return "png";
            } else if (b6 == (byte) 'J' && b7 == (byte) 'F' && b8 == (byte) 'I' && b9 == (byte) 'F') {
                return "jpg";
            } else {
                return null;
            }
        } else {
            return null;
        }
    }


    public static void main(String[] args) {
        File file = new File("D:/home/ubuntu/BoneAgeDemo/CT/JPG/20171229100855.jpg");
        getFileType("D:/home/ubuntu/BoneAgeDemo/CT/JPG/f-d-5-2-20.tif");
        getImageType(file);
    }

    getImageType测了一下tif文件,其中的ASCII码为73 73 42 0 8 0 0 0 13 0,没有验证出来,其次就是读取图片带过来的长与宽,基本就是这样了

   

分享到:
评论

相关推荐

    java-文件工具,可以查看文件类型,文件魔数,可以判断是否是视频文件,音乐文件,图片文件等等

    java文件的工具类,封装了常用的操作,尤其针对文件的实际类型,通过获取文件的byte,来查看文件起始字节的魔数值,通过魔数值来判断文件的类型,工具集合了常用的文件类型对应的魔数,也封装了文件类型的判断方法

    java中的文件判断

    java 中的文件判断是指判断文件的类型,java 提供了多种方式来判断文件类型,这篇文章将介绍其中的一些。 文件类型判断的重要性在于,当我们需要下载或打开文件时,需要根据文件类型来选择相应的处理方式。例如,...

    java,判断ftp中文件是否存在

    java,判断ftp中文件是否存在

    Java判断文件编码格式 - 明明是悟空 - 博客园1

    在Java编程中,判断文件编码格式是一项常见的任务,特别是在处理包含多国语言或者用户自定义内容的文件时。本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用...

    java通过文件头内容判断文件类型

    在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能没有明确的扩展名,或者扩展名被恶意篡改。文件头内容通常包含特定的标识符,这些标识符是文件格式的...

    Java判断文件的编码

    ### Java判断文件编码的方法 在Java开发中,经常会遇到需要处理不同编码格式的文件的情况。为了确保程序能够正确解析文件内容,必须先判断文件的编码格式。本文将详细介绍如何使用Java来判断文件是否为UTF-8或GBK...

    java判断文件或文件夹

    "Java判断文件或文件夹" Java语言中判断文件或文件夹的存在性是一种基础操作,开发者在编写Java程序时经常需要判断文件或文件夹是否存在,以便进行相应的操作。在本文中,我们将详细介绍如何使用Java语言判断文件或...

    LanDuoZi_IsVideo.java

    java后段判断文件是否为视频,传入文件MultipartFile,返回类型boolean,io异常抛出。简单方便没啥难度就是给懒汉用的。内部存在空文件校验直接返回否。

    java判断本地文件是否存在.txt

    `java.io.File`类中的`exists()`方法用于判断文件或目录是否存在。如果文件或目录存在,则返回`true`;否则返回`false`。 ### 二、代码实现 根据题目给出的部分内容,我们可以构建一个完整的示例程序来演示如何使用...

    java获取文件编码(判断有无BOM)

    本文将详细介绍如何在Java中获取文件的编码并判断文件是否带有BOM。 首先,让我们了解一下什么是BOM。BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三...

    java判断是否为图片的步骤和方法

    Java判断是否为图片的步骤和方法 Java判断是否为图片的步骤和方法是Java编程语言中一个常见的需求,特别是在文件上传和处理等场景中。下面将详细介绍Java判断是否为图片的步骤和方法。 判断是否为图片的步骤 1. ...

    java 判断两个文件是否相同

    在lib目录下,虽然没有具体的文件,通常这个目录会包含项目所依赖的库文件,对于判断文件相同这样的基础操作,标准库已经足够应对,无需额外引入外部工具库。在实际项目中,如果你的文件是在特定环境中(如Web服务器...

    HDFS判断文件或目录是否存在——Shell命令实现 + Java代码实现

    若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。 二、Java代码实现 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs....

    java判断文件编码

    在Java编程中,判断文件编码是一项重要的任务,尤其是在处理用户上传的文件或处理不同系统间的文件传输时。本文将深入探讨如何使用Java进行文件编码的检测,并基于提供的资源——`cpdetector_1.0.5.jar`、`chardet....

    判断文件是否为utf-8的编码格式

    一个判断文件为utf-8的java类,自己用有限状态机实现的,很好用的。

    java zip rar(区分有无密码的RAR文件) gz ftp工具类

    在Java编程环境中,处理压缩文件和网络传输是常见的任务,特别是在开发企业级应用程序时。本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的...

    java上传文件(图片)工具类,可直接使用

    java上传文件util包,可直接使用,需将地址改为自己的存储地址,

    java获取网网页中出现的图片及判断网页代码中是否包含有效图片

    ### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...

    java修改文件属性

    在Java中,可以通过`java.io.File`类提供的方法来判断文件的某些属性,例如判断文件是否为隐藏文件或只读文件。具体的方法包括: 1. **判断文件是否隐藏**:使用`File.isHidden()`方法。需要注意的是,此方法并非...

    java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

    `cpdetector_1.0.10.jar` 是一个第三方工具包,专为Java开发者设计,用于检测文件的编码类型。这个工具包能够帮助程序员避免因编码不匹配而导致的乱码问题,提高程序的兼容性和稳定性。 `cpdetector`库包含了多种...

Global site tag (gtag.js) - Google Analytics