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

Sen*_*hil 2 java

无法从 bytearray 获取 MIME TYPE - 为任何 MIME TYPE 文档返回 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);
Run Code Online (Sandbox Code Playgroud)

Ren*_*ené 5

查看源代码(JDK 7JDK 11),guessContentTypeFromStream通过检查前 16 个字节仅支持非常有限的 MIME 类型:

  • 应用程序/java-vm
  • 应用程序/x-java-序列化对象
  • 文本/html
  • 应用程序/xml(UTF-8、UTF-8 w/BOM、UTF-16 LE/BE、UTF-32 LE/BE)
  • 图像/gif
  • 图像/x 位图
  • 图像/x 像素图
  • 图像/png
  • 图像/jpg
  • 图像/vnd.fpx
  • 音频/基本 (.au LE/BE)
  • 音频/x-wav

null返回为“text/plain”不是其中的一个。如果您需要猜测另一种 mime 类型,则必须使用另一个库。