在我的应用程序中,我开发了获取附件的Web服务。
该文件通过JaxB映射到DataHandler对象,
而且我可以通过DataHandler.getInputStream()访问文件

我的问题是这样的:
如果Web服务请求中存在file属性,但未附加文件,
我仍然得到DataHandler对象,它的getInputStream()。available()= 11个字节
(我猜一个标题... ??)。

所以我可以知道inputStream为空吗?

谢谢,
阿隆

最佳答案

读取它并解析应解析的数据。答案就在那里。

InputStream#available()当然不会返回流的长度,就像您认为的那样。在某些情况下(偶然),也许可以,但是您不应该依赖于此。它仅返回可读取的字节数,而不会阻塞其他线程。只需完全读取流the usual Java IO way,直到最后一位返回-1,然后截取您收到的全部数据即可。

10-06 10:46