如何在Java6中从字节数组中获取MIME类型?
我一直在试图找出如何从Java6中的字节数组中获取MIME类型,但不幸的是,我还不能获取MIME类型 有人能帮我摆脱困境吗?您可以使用Java 6提供的类。此类专门用于获取MIME类型 使用它获取MIME类型,如下所示:如何在Java6中从字节数组中获取MIME类型?,java,arrays,mime-types,Java,Arrays,Mime Types,我一直在试图找出如何从Java6中的字节数组中获取MIME类型,但不幸的是,我还不能获取MIME类型 有人能帮我摆脱困境吗?您可以使用Java 6提供的类。此类专门用于获取MIME类型 使用它获取MIME类型,如下所示: byte[] content = ; InputStream is = new BufferedInputStream(new ByteArrayInputStream(content)); String mimeType = URLConnection.guessConten
byte[] content = ;
InputStream is = new BufferedInputStream(new ByteArrayInputStream(content));
String mimeType = URLConnection.guessContentTypeFromStream(is);
要从文件中提取,可以使用以下代码:
MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap();
String mime = mimeTypesMap.getContentType(file);
好工作图书馆
导入(通过gradle.kts):
用法
//输入
final var fileName=“somefile.html”;
最终var content=“.getBytes()”;
final var mimetypedeter=新的mimetypedeter();//只初始化一次,重复使用!
final var mimeType=mimetypedeter.detectMimeType(文件名,()->内容);
System.out.println(mimeType);//打印:文本/html
byte[]是否包含MIME类型?请提供更多(更多!)细节。和一些源代码作为例子。代码片段利用了Java10的特性。容易降级!在现代Java(11)中,您必须将InputStream is=new BufferedInputStream
更改为BufferedInputStream is=new BufferedInputStream
,因为InputStream
具有。markSupported()==false
,因此mimeType
始终为空,而缓冲版本具有“.markSupported()==true”。
implementation("org.overviewproject:mime-types:0.1.3")
// input
final var fileName = "somefile.html";
final var content = "<html></html>".getBytes();
final var mimeTypeDetector = new MimeTypeDetector(); // initialize only once, reuse!
final var mimeType = mimeTypeDetector.detectMimeType(fileName, () -> content);
System.out.println(mimeType); // prints: text/html