在我的应用程序中,我开发了获取附件的 Web 服务。该文件通过 JaxB 映射到 DataHandler 对象,我可以通过 DataHandler.getInputStream() 访问该文件
我的问题是这样的:当 web 服务请求中存在文件属性,但没有附加文件时,我仍然得到 DataHandler 对象,它的 getInputStream().available() = 11 字节(我猜是一个标题......? ?)。
所以我可以知道 inputStream 是空的吗?
谢谢, 阿隆
在我的应用程序中,我开发了获取附件的 Web 服务。该文件通过 JaxB 映射到 DataHandler 对象,我可以通过 DataHandler.getInputStream() 访问该文件
我的问题是这样的:当 web 服务请求中存在文件属性,但没有附加文件时,我仍然得到 DataHandler 对象,它的 getInputStream().available() = 11 字节(我猜是一个标题......? ?)。
所以我可以知道 inputStream 是空的吗?
谢谢, 阿隆
读取它并解析应该解析的数据。答案就在里面。
InputStream#available()
当然不会像您想象的那样返回流的长度。在某些情况下,它(巧合)可能,但你不应该依赖它。它只返回可用于读取而不阻塞其他线程的字节数。只需以通常的 Java IO 方式完全读取流,直到返回最后一位-1
,然后拦截您收到的全部数据。