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文件的工具类,封装了常用的操作,尤其针对文件的实际类型,通过获取文件的byte,来查看文件起始字节的魔数值,通过魔数值来判断文件的类型,工具集合了常用的文件类型对应的魔数,也封装了文件类型的判断方法
java 中的文件判断是指判断文件的类型,java 提供了多种方式来判断文件类型,这篇文章将介绍其中的一些。 文件类型判断的重要性在于,当我们需要下载或打开文件时,需要根据文件类型来选择相应的处理方式。例如,...
java,判断ftp中文件是否存在
在Java编程中,判断文件编码格式是一项常见的任务,特别是在处理包含多国语言或者用户自定义内容的文件时。本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用...
在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能没有明确的扩展名,或者扩展名被恶意篡改。文件头内容通常包含特定的标识符,这些标识符是文件格式的...
### Java判断文件编码的方法 在Java开发中,经常会遇到需要处理不同编码格式的文件的情况。为了确保程序能够正确解析文件内容,必须先判断文件的编码格式。本文将详细介绍如何使用Java来判断文件是否为UTF-8或GBK...
"Java判断文件或文件夹" Java语言中判断文件或文件夹的存在性是一种基础操作,开发者在编写Java程序时经常需要判断文件或文件夹是否存在,以便进行相应的操作。在本文中,我们将详细介绍如何使用Java语言判断文件或...
java后段判断文件是否为视频,传入文件MultipartFile,返回类型boolean,io异常抛出。简单方便没啥难度就是给懒汉用的。内部存在空文件校验直接返回否。
`java.io.File`类中的`exists()`方法用于判断文件或目录是否存在。如果文件或目录存在,则返回`true`;否则返回`false`。 ### 二、代码实现 根据题目给出的部分内容,我们可以构建一个完整的示例程序来演示如何使用...
本文将详细介绍如何在Java中获取文件的编码并判断文件是否带有BOM。 首先,让我们了解一下什么是BOM。BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三...
Java判断是否为图片的步骤和方法 Java判断是否为图片的步骤和方法是Java编程语言中一个常见的需求,特别是在文件上传和处理等场景中。下面将详细介绍Java判断是否为图片的步骤和方法。 判断是否为图片的步骤 1. ...
在lib目录下,虽然没有具体的文件,通常这个目录会包含项目所依赖的库文件,对于判断文件相同这样的基础操作,标准库已经足够应对,无需额外引入外部工具库。在实际项目中,如果你的文件是在特定环境中(如Web服务器...
若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。 二、Java代码实现 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs....
在Java编程中,判断文件编码是一项重要的任务,尤其是在处理用户上传的文件或处理不同系统间的文件传输时。本文将深入探讨如何使用Java进行文件编码的检测,并基于提供的资源——`cpdetector_1.0.5.jar`、`chardet....
一个判断文件为utf-8的java类,自己用有限状态机实现的,很好用的。
在Java编程环境中,处理压缩文件和网络传输是常见的任务,特别是在开发企业级应用程序时。本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的...
java上传文件util包,可直接使用,需将地址改为自己的存储地址,
### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...
在Java中,可以通过`java.io.File`类提供的方法来判断文件的某些属性,例如判断文件是否为隐藏文件或只读文件。具体的方法包括: 1. **判断文件是否隐藏**:使用`File.isHidden()`方法。需要注意的是,此方法并非...
`cpdetector_1.0.10.jar` 是一个第三方工具包,专为Java开发者设计,用于检测文件的编码类型。这个工具包能够帮助程序员避免因编码不匹配而导致的乱码问题,提高程序的兼容性和稳定性。 `cpdetector`库包含了多种...