在Java中识别文件类型

前端之家收集整理的这篇文章主要介绍了在Java中识别文件类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请帮我找出正在上传文件的类型.
我想区分excel类型和csv.

MIMEType对于这两个文件都返回相同的方式.请帮忙.

解决方法

我使用 Apache Tika,它使用魔术字节模式和globbing提示(文件扩展名)来识别文件类型,以检测MIME类型.它还支持文件内容的其他解析(我不真正使用).

以下是一个简单而肮脏的例子,说明如何使用Tika来检测文件类型,而不对文件执行任何额外的解析:

@H_404_11@import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.HashMap; import org.apache.tika.Metadata.HttpHeaders; import org.apache.tika.Metadata.Metadata; import org.apache.tika.Metadata.TikaMetadataKeys; import org.apache.tika.mime.MediaType; import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.Parser; import org.xml.sax.helpers.DefaultHandler; public class Detector { public static void main(String[] args) throws Exception { File file = new File("/pats/to/file.xls"); AutoDetectParser parser = new AutoDetectParser(); parser.setParsers(new HashMap<MediaType,Parser>()); Metadata Metadata = new Metadata(); Metadata.add(TikaMetadataKeys.RESOURCE_NAME_KEY,file.getName()); InputStream stream = new FileInputStream(file); parser.parse(stream,new DefaultHandler(),Metadata,new ParseContext()); stream.close(); String mimeType = Metadata.get(HttpHeaders.CONTENT_TYPE); System.out.println(mimeType); } }

猜你在找的Java相关文章