`
Luob.
  • 浏览: 1590451 次
  • 来自: 上海
社区版块
存档分类
最新评论

java 获取文件的类型

    博客分类:
  • Java
 
阅读更多
之前使用 javax.activation.MimetypesFileTypeMap; 判断发现 如果文件是 office 文件 就判断不出来了 郁闷.


----------------使用JMimeMagic ---------------------

通过检测文件后缀名去查找文件类型显然不是一个健壮的方法。JMimeMagic库提供了更健壮的检测方法,他是一个通过检查magic headers来判断文件或者流的mime 类型的java工具包
需要 commons-loggin.jar
     jmimemagic.jar


import java.io.File;

import net.sf.jmimemagic.Magic;
import net.sf.jmimemagic.MagicException;
import net.sf.jmimemagic.MagicMatch;
import net.sf.jmimemagic.MagicMatchNotFoundException;
import net.sf.jmimemagic.MagicParseException;
public class FileType {

	/**
	 * @param args
	 * @throws MagicException 
	 * @throws MagicMatchNotFoundException 
	 * @throws MagicParseException 
	 */
	public static void main(String[] args) throws MagicParseException, MagicMatchNotFoundException, MagicException {
		 File file=new File("D:\\Tomcat 5.5\\webapps\\bjproduct\\opt/siteimg/attachfile/office/contract/2012/9/dc142d5f-aff3-46ac-adba-4788d7d06247.doc");
	     Magic parser = new Magic();  
		 MagicMatch match = parser.getMagicMatch(file, false);  
		 System.out.println(match.getMimeType()) ;  

	}

}


看看下面的文章

看看这篇文章
3
3
分享到:
评论
8 楼 Luob. 2012-09-28  
rensanning 写道
MimetypesFileTypeMap类是可以获取其他文件的minetype的,只是需要你自己在做一个mime.types文件。默认他只能识别activation.jar\META-INF\mimetypes.default中定义的文件。

MimetypesFileTypeMap是根据文件扩展名来判断的。

这篇文章说的很详细,可以参考参考:http://www.rgagnon.com/javadetails/java-0487.html
这个有中文翻译:http://chinacheng.iteye.com/blog/857485


这个 我试过 是通过 文件 后缀名 来判断的 而且 jar zip rar chm office 都判断不出来
7 楼 rensanning 2012-09-28  
MimetypesFileTypeMap类是可以获取其他文件的minetype的,只是需要你自己在做一个mime.types文件。默认他只能识别activation.jar\META-INF\mimetypes.default中定义的文件。

MimetypesFileTypeMap是根据文件扩展名来判断的。

这篇文章说的很详细,可以参考参考:http://www.rgagnon.com/javadetails/java-0487.html
这个有中文翻译:http://chinacheng.iteye.com/blog/857485
6 楼 hhqoffice 2012-09-28  
谁写的叼毛东西,那么多错误,还发布出来,晕。
5 楼 yanthe 2012-09-27  
dragon_yb 写道
楼主有测试过 jar文件么? jar解析出来说是 zip 类型了。 rar 直接报错哦。 有待优化。

我这也是报错。。。
4 楼 梁温陵 2012-09-27  
yzsunlight 写道
楼主 office 2007的word以docx结尾的文件,判断出现异常

jmimemagic这个库是2006的东东,肯定不认识2007的东东啦
3 楼 zuwenjiang 2012-09-27  
测试一下脚本
2 楼 yzsunlight 2012-09-26  
楼主 office 2007的word以docx结尾的文件,判断出现异常
1 楼 dragon_yb 2012-09-26  
楼主有测试过 jar文件么? jar解析出来说是 zip 类型了。 rar 直接报错哦。 有待优化。

相关推荐

    Java根据文件内容获取文件类型

    Java根据文件内容获取文件类型,防止文件伪造后缀名。

    java 获取文件的真实类型依赖.zip

    在Java编程中,获取文件的...通过以上方法,开发者可以更准确地判断Java应用程序中处理的文件类型,提高程序的健壮性和安全性。在实际开发中,根据具体需求,可能还需要结合其他策略来进一步确保文件类型的正确识别。

    JAVA 根据Url 接口 获取文件名称和类型

    JAVA 根据Url 接口 获取文件名称和类型,亲测可用。输入参数地址即可。

    java实现上传文件类型检测过程解析

    "Java 实现上传文件类型检测过程解析" Java 实现上传文件类型检测过程解析是指在进行文件上传时,对上传文件的格式进行控制,以防止黑客将病毒脚本上传。单纯的将文件名的类型进行截取的方式非常容易遭到破解,...

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

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

    JAVA获取文件编码格式

    标题提到的“JAVA获取文件编码格式”是一项常见的任务,特别是在处理来自不同来源的文本文件时。在这种情况下,我们可以利用第三方开源库来帮助我们完成这项工作。描述中提到了一个叫做"cpdetector"的工具,这是一个...

    java验证文件真实格式和编码格式工具类

    在Java中,没有内置的方式来直接确定文件类型,但可以通过以下策略实现: 1. **Magic Number**:大多数文件格式在其头部都有一些特定的字节序列,称为“魔法数字”。通过比较这些字节与已知文件类型的魔法数字,...

    图片文件上次,获取图片文件实际类型

    * @Description:getImageFileType,获取图片文件实际类型,若不是图片则返回null * @author Tang.Homvee * @creaetime 2015年8月21日下午5:43:53 * @param f * @return */ public final static ...

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

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

    Java获取播放文件的时长

    在Java编程中,获取播放文件(如音频或视频文件)的时长是一项常见的任务,尤其在多媒体应用或者处理媒体文件的场景下。本篇将详细讲解如何利用Java来...在实际开发中,应根据项目需求和文件类型来选择最合适的方法。

    java中的文件判断

    在 java 中,判断文件类型可以使用 `FileTypeMap` 类,该类提供了一个 getDefaultFileTypeMap() 方法,可以获取系统默认的文件类型映射。然后,我们可以使用 `getContentType()` 方法来获取文件的类型。 以下是一个...

    java源码 java 获取文件md5值(用于检测文件完整性) 2018127

    以下是一个简单的Java源码示例,展示了如何获取文件的MD5值: ```java import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import java.security....

    java 获取文件编码

    在Java编程语言中,获取文件编码是一个常见的任务,特别是在处理文本文件时,了解正确的编码格式至关重要,因为不同的编码方式会影响字符的表示和解析。本文将深入探讨如何在Java中识别和处理不同类型的文本编码,如...

    Java获得某个路径下的所有文件列表,并写入指定文件

    以上就是关于“Java获得某个路径下的所有文件列表,并写入指定文件”的详细解释。通过这些知识点,你可以轻松实现文件列表的获取与写入操作。记住,始终要根据具体项目需求和安全性考虑进行适当的调整。

    如何使用Java代码获取播放文件的时长

    首先,对于不同类型的文件,获取时长的方法会有所不同。例如,音频文件(如mp3)和视频文件(如mp4)的处理方式就有所区别。对于音频文件,我们通常需要解析音频头部信息来获取时长;对于视频文件,可能需要解析容器...

    java获取网络音乐文件时长

    在Java编程中,获取网络音乐文件的时长是一项常见的任务,尤其在开发音乐播放器或者处理音频流的应用中。下面将详细介绍三种不同的方法来实现这一功能。 ### 方法一:使用`BufferedInputStream`和`AudioInputStream...

    Java获取文件的类型和扩展名的实现方法

    总的来说,Java中获取文件类型和扩展名的方式主要包括使用`File`类获取文件名和扩展名,以及通过探测MIME类型或读取文件头来判断文件类型。实际开发中,应根据具体需求选择合适的方法。注意,确保在处理用户提供的...

    java截取wave文件,java获取wave文件头信息

    这是一个完整的myeclipse项目,主要实现的功能有: 1.用java获取wave类型的音频文件头信息; 2.根据传入参数截取指定时间段内的音频片段 改资源为本人原创,下载后导入myeclipse可以直接运行

    JAVA实现文件类型预处理

    在Java编程中,文件类型预处理是一个重要的环节,特别是在处理大量数据或进行文件操作时。这一过程涉及到识别、转换和优化文件以便后续处理。本文将深入探讨如何利用Java实现文件类型的预处理,以及与之相关的数据...

    Java 上传文件到 SharePoint

    4. 将文件内容添加到MultipartEntityBuilder,设置文件名和内容类型。 5. 设置“overwrite”参数,决定是否覆盖已存在的同名文件。 6. 将构建好的MultipartEntity设置到HttpPost对象。 7. 执行HttpPost请求并处理...

Global site tag (gtag.js) - Google Analytics