我目前的情况是:我必须读取一个文件并将内容放入InputStream
。之后我需要将 InputStream
的内容放入一个字节数组中,这需要(据我所知)InputStream
的大小。有什么想法吗?
根据要求,我将显示我从上传的文件创建的输入流
InputStream uploadedStream = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
java.util.List items = upload.parseRequest(request);
java.util.Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
uploadedStream = item.getInputStream();
//CHANGE uploadedStreambyte = item.get()
}
}
请求是一个 HttpServletRequest
对象,类似于 FileItemFactory
和 ServletFileUpload
来自 Apache Commons FileUpload 包。
最佳答案
这是一个非常古老的线程,但当我在谷歌上搜索该问题时,它仍然是第一个弹出的内容。所以我只想添加这个:
InputStream inputStream = conn.getInputStream();
int length = inputStream.available();
为我工作。而且比这里的其他答案简单得多。
警告 此解决方案无法提供有关流总大小的可靠结果。 JavaDoc 除外:
Note that while some implementations of {@code InputStream} will return * the total number of bytes in the stream, many will not.
关于java - 确定 InputStream 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1119332/