- 浏览: 1378053 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (287)
- oracle (30)
- Java (73)
- MySQL (16)
- Myeclipse/eclipse (12)
- javascript (15)
- JSP/Servlet (7)
- maven (14)
- AJAX (2)
- JQuery (9)
- tomcat (8)
- spring (21)
- Linux (28)
- PHP (9)
- UI (1)
- 编程错误及处理 (38)
- 多线程 (18)
- hibernate (10)
- Web Service (3)
- struts2 (6)
- log4j (3)
- SVN (4)
- DWR (1)
- lucene (1)
- 正则表达式 (4)
- jstl (2)
- SSL (3)
- POI (1)
- 网络编程 (1)
- 算法 (2)
- xml (4)
- 加密解密 (1)
- IO (7)
- jetty (2)
- 存储过程 (1)
- SQL Server (1)
- MongoDB (1)
- mybatis (1)
- ETL (1)
- Zookeeper (1)
- Hadoop (5)
- Redis (1)
- spring cloud (1)
最新评论
-
ron.luo:
牛逼,正解!
maven设定项目编码 -
lichaoqun:
java.sql.SQLException: Can't call commit when autocommit=true -
Xujian0000abcd:
Thanks...
Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the clas -
renyuan2ni:
[i][b][u]引用[list]
[*][img][flas ...
Manual close is not allowed over a Spring managed SqlSession -
851228082:
宋建勇 写道851228082 写道<!-- 文件拷贝时 ...
maven设定项目编码
package cn.com.songjy.test.io; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; public class FileTypeUtils { public final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>(); private FileTypeUtils() { } static { getAllFileType(); // 初始化文件类型信息 } /** * Created on 2013-1-21 * <p> * Discription:[getAllFileType,常见文件头信息] * * @author:shaochangfu */ private static void getAllFileType() { FILE_TYPE_MAP.put("jpg", "FFD8FF"); // JPEG (jpg) FILE_TYPE_MAP.put("png", "89504E47");// PNG (png) FILE_TYPE_MAP.put("gif", "47494638");// GIF (gif) FILE_TYPE_MAP.put("bmp", "424D"); // Windows Bitmap (bmp) FILE_TYPE_MAP.put("zip", "504B0304");// zip 压缩文件 } public static void main(String[] args) throws Exception { File f = new File("/home/newpro/桌面/2013-1-17-2.png"); File f2 = new File("/home/newpro/桌面/Screenshot.Png"); File f3 = new File("/home/newpro/桌面/Screenshot.zip"); File f4 = new File("/home/newpro/桌面/svn插件1.6.zip"); // 判断是否是iamge,是image 并且后缀名 是 JPEG,PNG,GIF BMP System.out.println(isImage(f) + "is image"); System.out.println(isImage(f2) + "is image"); System.out.println(getImageFileType(f) + " is image"); System.out.println(getImageFileType(f2) + " is image"); // 判断是否是zip System.out.println(getFileByFile(f3) + " is zip"); System.out.println(getFileByFile(f4) + " is zip"); } /** * Created on 2013-1-21 * <p> * Discription:[getImageFileType,获取图片文件实际类型,若不是图片则返回null] * </p> * * @param File * @return fileType * @author:shaochangfu */ public final static String getImageFileType(File f) { if (isImage(f)) { try { ImageInputStream iis = ImageIO.createImageInputStream(f); Iterator<ImageReader> iter = ImageIO.getImageReaders(iis); if (!iter.hasNext()) { return null; } ImageReader reader = iter.next(); iis.close(); return reader.getFormatName(); } catch (IOException e) { e.printStackTrace(); return null; } catch (Exception e) { e.printStackTrace(); return null; } } return null; } /** * Created on 2013-1-21 * <p> * Discription:[getFileByFile,获取文件类型,包括图片,若格式不是已配置的,则返回null] * </p> * * @param file * @return fileType * @author:shaochangfu */ public final static String getFileByFile(File file) { String filetype = null; byte[] b = new byte[50]; try { InputStream is = new FileInputStream(file); is.read(b); filetype = getFileTypeByStream(b); is.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return filetype; } /** * Created on 2013-1-21 * <p> * Discription:[getFileTypeByStream] * </p> * * @param b * @return fileType * @author:shaochangfu */ public final static String getFileTypeByStream(byte[] b) { String filetypeHex = String.valueOf(getFileHexString(b)); Iterator<Entry<String, String>> entryiterator = FILE_TYPE_MAP .entrySet().iterator(); while (entryiterator.hasNext()) { Entry<String, String> entry = entryiterator.next(); String fileTypeHexValue = entry.getValue(); if (filetypeHex.toUpperCase().startsWith(fileTypeHexValue)) { return entry.getKey(); } } return null; } /** * Created on 2013-1-21 * <p> * Discription:[isImage,判断文件是否为图片] * </p> * * @param file * @return true 是 | false 否 * @author:shaochangfu */ public static final boolean isImage(File file) { boolean flag = false; try { BufferedImage bufreader = ImageIO.read(file); int width = bufreader.getWidth(); int height = bufreader.getHeight(); if (width == 0 || height == 0) { flag = false; } else { flag = true; } } catch (IOException e) { flag = false; } catch (Exception e) { flag = false; } return flag; } /** * Created on 2013-1-21 * <p> * Discription:[getFileHexString] * </p> * * @param b * @return fileTypeHex * @author:shaochangfu */ public final static String getFileHexString(byte[] b) { StringBuilder stringBuilder = new StringBuilder(); if (b == null || b.length <= 0) { return null; } for (int i = 0; i < b.length; i++) { int v = b[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } }
引自:http://ashaochangfu.blog.163.com/blog/static/10425173020130229186219/
参阅:http://blog.csdn.net/songylwq/article/details/6139753
发表评论
-
java.io.NotSerializableException: java.util.ArrayList$SubList
2016-03-15 11:36 2854错误信息: 原代码: if (null != dto ... -
java.lang.NoSuchMethodError
2015-10-30 19:50 1207在执行命令 java -Djava.ext.dirs=./de ... -
OutOfMemoryError
2015-01-07 10:49 669错误信息: 执行命令(修改前): java -Djava. ... -
自定义ClassLoader
2014-12-14 17:13 886一、自定义类加载器代码: package foo; im ... -
URL传递中文参数乱码问题
2014-03-14 12:55 1149项目特殊要求,form表单使用get方式提交,由此出现了中文乱 ... -
Java使用正则进行奇偶替换
2013-12-30 11:20 1590/** * 将位于偶数位的数字1替换为2 */ ... -
Java调用ping命令
2013-11-26 10:26 3702package cn.com.songjy; impor ... -
Linux开机启动Java程序
2013-11-25 15:26 3580一、编写启动Java程序shell脚本(smssend.sh) ... -
单例模式
2013-11-05 09:58 786Java之美[从菜鸟到高手演变]之设计模式 Java开发中 ... -
判定2个对象相等之重写equals方法
2013-10-18 11:03 1090package cn.com.songjy.test; ... -
SAX解析XML文件示例
2013-09-13 17:32 1043package cn.com.songjy.test.xml; ... -
二分查找算法(Binary Search)
2013-09-13 17:01 2436项目中遇到需要从数组中查找数据,但是算法很多,于是根据项目需求 ... -
Iterate over rows and cells(EXCEL文件的读取)
2013-09-13 14:13 4090package cn.com.songjy.test.exce ... -
jdk1.5的Exchanger同步工具
2013-08-27 14:04 695package cn.com.songjy.test.sock ... -
jdk1.5的CountDownLatch同步工具
2013-08-27 13:37 809package cn.com.songjy.test.sock ... -
jdk1.5的Semaphere同步工具
2013-08-23 14:20 1089package cn.com.songjy.test.so ... -
jdk1.5条件阻塞Condition的应用
2013-08-23 09:42 1360package cn.com.songjy.test.sock ... -
jdk1.5读写锁技术的妙用
2013-08-19 22:00 1391/** * ReadWriteLockTest.java ... -
jdk1.5的线程锁技术
2013-08-19 20:25 961/** * LockTest.java * cn.co ... -
Callable与Future的应用
2013-08-19 20:03 1068/** * CallableAndFuture.java ...
相关推荐
本篇文章将深入探讨如何在Java中通过文件头内容来判断文件类型。 首先,了解文件头的基本概念。文件头是指文件开始的一段字节,不同的文件格式会有不同的文件头结构。例如,JPEG图像文件的开头通常是"FF D8 FF E0...
根据头信息判断文件类型是计算机科学中的一个常见技术,它基于这样一个事实:大多数文件格式在开始部分都会包含一些特定的字节序列,这些序列被称为“魔术数字”或“文件签名”,用于标识文件的类型。这种方法在很多...
然后,使用 HashMap 缓存文件头信息,通过文件头信息来判断文件的真正类型。 以下是 Java 实现上传文件类型检测过程解析的示例代码: ```java import java.io.*; import java.util.HashMap; public class ...
综上所述,理解并利用文件头信息来判断文件类型是IT从业者必备的技能之一。无论是编写脚本处理大量文件,还是排查数据传输问题,这个知识都能提供强大的支持。通过深入学习和实践,我们可以更高效地管理和操作各种...
以下是一个Java语言的示例代码,展示了如何通过文件头判断文件类型: ```java import java.io.FileInputStream; import java.io.IOException; public class FileHeaderCheck { /** * byte数组转换成16进制字符串...
总的来说,Java中判断文件编码格式的方法包括简单的字节匹配和使用更复杂的库如cpdetector。在实际开发中,应根据项目的具体需求选择合适的方法,确保能正确处理各种编码格式的文件,避免因为编码问题导致的乱码现象...
本文将详细介绍如何在Java中获取文件的编码并判断文件是否带有BOM。 首先,让我们了解一下什么是BOM。BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三...
Java实现的获取和判断文件头信息工具类用法示例 ...Java实现的获取和判断文件头信息工具类可以根据文件路径获取文件头信息,并根据头信息来判断文件类型,该工具类可以应用于各种文件管理和识别系统中。
Java如何实现判断文件的真实...判断文件真实类型是非常重要的,Java可以通过文件头信息来判断文件的真实类型。通过缓存文件头信息,可以快速地判断文件的真实类型。这个技术可以广泛应用于文件上传、下载、传输等方面。
本文档旨在教导读者如何通过Java编程语言来判断文件的编码类型。这包括常见的编码格式如GBK、UTF-8等。了解文件编码对于处理多语言环境下的文本数据至关重要。 #### 详细知识点解析 ##### 文件编码类型简介 文件...
2. Java 获取和判断文件头信息:如何使用 Java 语言来获取和判断文件头信息,包括如何使用 MultipartFile 对象来获取文件信息,以及如何判断文件的类型和大小等信息。 3. Ajax 文件上传:如何使用 Ajax 方式上传文件...
为了提高识别的准确性,我们可以依据文件头信息来判断文件类型。文件头通常包含特定的字节序列,这些序列是文件格式的标识符。 本文将详细介绍一种在Android中使用Java根据文件头获取文件类型的实现方法。这个方法...
本篇文章将深入探讨如何在Java中通过读取文件流的头二十个字节来判断文件类型。 首先,我们要理解为什么需要通过文件流的字节来判断类型。文件的后缀名仅仅是人为设定的标识,有时可能被篡改或丢失,而文件的实际...
例如,你可以创建一个 `URL` 对象来指定要下载的文件地址,然后通过 `openConnection()` 方法获取 `URLConnection` 实例,设置请求头信息如 `User-Agent`,并开启连接。 其次,Java IO 流是处理数据传输的核心工具...
在提供的压缩包文件中,“如何判断文件类型.pdf”和“Java判断文件类型.pdf”很可能是关于这两个主题的详细教程,可以帮助用户深入了解如何进行文件类型的识别。而“triddefs_xml.rar”可能包含TrIDNet的识别规则库...
文件类型可以通过文件扩展名来识别,但这种方法并不完全可靠,因为用户可以随意更改扩展名。更准确的方法是使用FileInputStream读取文件的头部几个字节,根据这些字节的二进制模式来识别文件类型,例如图片、音频、...
这段代码利用Apache Commons CSV库解析文件,同时支持了文件头作为字段名。 总结来说,处理包含中文字符的CSV文件,关键在于正确设置文件的编码,选择合适的读取方式,并确保与文件的实际编码匹配。此外,合理利用...
一种常见的方法是逐行读取文件,尝试用多种常见编码进行解码,根据解码是否成功或解码后的字符集来判断文件的编码。 6. **错误计数法**:如果在读取文件时遇到乱码,可以通过记录错误字符的数量和类型来推测文件的...
在Java中解析这种类型的文件,通常需要两个步骤:首先解压gzip,然后解包tar。这里我们将详细探讨两种不同的方法来实现这个过程。 方法一:使用Apache Commons Compress库 Apache Commons Compress库是Java社区...
2. **HTTP响应头**:在HTTP协议中,服务器通过响应头向客户端传递额外的信息,如文件名、文件大小和MIME类型等。其中,“Content-Disposition”用于指定文件的下载方式,通常设置为“attachment”表示附件下载。 3....