java zip 文件类型_用Java确定Zip Archive中的文件内容类型

您可以使用mime类型而不是尝试通过文件扩展名进行猜测,在某些情况下可能会丢失.以下是建立文件的mime类型的选项:

>使用javax.activation.MimetypesFileTypeMap,如:

System.out.println("Mime Type of " + f.getName() + " is " +

new MimetypesFileTypeMap().getContentType(f));

>使用java.net.URL

URL u = new URL(fileUrl);

URLConnection uc = u.openConnection();

type = uc.getContentType();

>使用Apache Tika

ContentHandler contenthandler = new BodyContentHandler();

Metadata metadata = new Metadata();

metadata.set(Metadata.RESOURCE_NAME_KEY, f.getName());

Parser parser = new AutoDetectParser();

// OOXMLParser parser = new OOXMLParser();

parser.parse(is, contenthandler, metadata);

System.out.println("Mime: " + metadata.get(Metadata.CONTENT_TYPE));

System.out.println("Title: " + metadata.get(Metadata.TITLE));

System.out.println("Author: " + metadata.get(Metadata.AUTHOR));

System.out.println("content: " + contenthandler.toString());

>使用JMimeMagic

MagicMatch match = parser.getMagicMatch(f);

System.out.println(match.getMimeType()) ;

>使用mime-util

Collection> mimeTypes = MimeUtil.getMimeTypes(f);

Droid (Digital Record Object Identification) is a software tool to

perform automated batch identification of file formats.

Aperture is an open source library and framework for crawling and indexing

information sources such as file systems, websites and mail boxes.

在这种情况下,最简单的方法是使用第一个解决方案javax.activation.MimetypesFileTypeMap,如:

MimetypesFileTypeMap mtft = new MimetypesFileTypeMap();

String mimeType = mtft.getContentType(ze.getName());

System.out.println(ze.getName()+" type: "+ mimeType);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值