Java 为什么将Bytearray转换为MIME类型会返回NULL

Java 为什么将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

无法从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 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在其答案中提供的链接)都应该让您开始