如何在Java6中从字节数组中获取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

我一直在试图找出如何从Java6中的字节数组中获取MIME类型,但不幸的是,我还不能获取MIME类型

有人能帮我摆脱困境吗?

您可以使用Java 6提供的类。此类专门用于获取MIME类型

使用它获取MIME类型,如下所示:

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