Java 为什么将Bytearray转换为MIME类型会返回NULL
无法从bytearray获取MIME类型-对任何MIME类型文档返回NULLJava 为什么将Bytearray转换为MIME类型会返回NULL,java,Java,无法从bytearray获取MIME类型-对任何MIME类型文档返回NULL byte[] res ={-2,-1,0,114,0,101,0,115,0,117,0,108,0,116,0,13,0,10,0,73,0,32,0,108,0,111,0,118,0,101,0,32,0,73,0,110,0,100,0,105,0,97,0,43,0,52,0,51}; InputStream isr = new BufferedInputStream(new ByteArrayInp
byte[] res ={-2,-1,0,114,0,101,0,115,0,117,0,108,0,116,0,13,0,10,0,73,0,32,0,108,0,111,0,118,0,101,0,32,0,73,0,110,0,100,0,105,0,97,0,43,0,52,0,51};
InputStream isr = new BufferedInputStream(new ByteArrayInputStream(res));
String mimeType = URLConnection.guessContentTypeFromStream(isr);
System.out.println(mimeType);
查看源(,),guessContentTypeFromStream
仅通过检查前16个字节来支持非常有限的mime类型:
- 应用程序/java虚拟机
- 应用程序/x-java-serialized-object
- 文本/html
- 应用程序/xml(UTF-8、UTF-8带BOM、UTF-16 LE/BE、UTF-32 LE/BE)
- 图像/gif
- 图像/x位图
- 图像/x-pixmap
- 图像/png
- 图片/jpg
- image/vnd.fpx
- 音频/基本(.au-LE/BE)
- 音频/x-wav
null
返回,因为“text/plain”不在其中。如果您需要猜测另一个mime类型,则必须使用另一个库。,因为它无法确定内容类型实际上是什么。javadocs说,如果无法确定内容类型,则返回null
如果您想要更好的东西,您可以先看看这个问题的答案和注释:。谢谢,我们有没有办法从字节数组中获取MIME类型?谢谢……任何可以处理其他MIME类型的java内置库(Stephen C在其答案中提供的链接)都应该让您开始