查找DataHandler的InputStream是否为空

时间:2009-11-30 13:38:42

标签: java web-services jaxb attachment mtom

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

访问该文件

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

所以我可以知道inputStream是空的吗?

谢谢, 阿龙

1 个答案:

答案 0 :(得分:1)

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

InputStream#available()肯定会返回流的长度,或者您认为如此。在某些情况下(巧合)可能,但你不应该依赖它。它只返回可用于读取的字节数,而不会阻塞其他线程。只需完全读取流the usual Java IO way,直到最后一位返回-1,然后拦截您收到的整个数据。