我的当前情况是:我需要读取一个文件并将其内容放入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包。
available()
方法说:“请注意,虽然InputStream的某些实现将返回流中的总字节数,但许多实现不会这样做。使用此方法的返回值来分配旨在容纳该流中所有数据的缓冲区是不正确的。” - GVillani82