我目前的情况是:我必须读取文件并将内容放入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包。
我只想添加,Apache Commons IO具有流支持实用程序来执行复制。(顺便说一句,将文件放入输入流是什么意思?您可以向我们展示您的代码吗?)
编辑:
好的,您要如何处理项目的内容?有一个以字节数组item.get()
返回整个对象的对象。
编辑2
item.getSize()
将返回上传的文件大小。
问题内容: 我需要在不创建File实例的情况下获取InputStream的大小(以字节为单位)。使用Java NIO有什么办法吗? 问题答案: 一般的?您只需要继续读取和读取(例如,一次又一次地读入同一个缓冲区),就可以计算已读取的字节数,直到到达流的末尾为止。 当然,您将无法读取数据本身……如果要这样做,则需要在读取数据时将其保留,例如,将其复制到。 (如果您能够在计算长度的同时处理数据,则只需
我正在写一个数据流作业,它将从GCS和BigQuery读取数据。此作业将合并从两个来源读取的数据。合并数据只是字符串。 然后此作业将把合并后的数据发布到外部API中。编写自定义接收器以发布合并后的数据。 如果合并数据超过1 GB,外部API将不允许发布数据。 我只想在合并数据超过1 GB的情况下使数据流作业失败。如何获取pCollection中存在的数据大小? 目前我正在使用下面的代码确定大小 有
问题内容: 有没有办法确定内容的大小?我读了这个get-size-of-http-response-in- java问题,但可悲的是我在哪里工作,我无法访问CommonsIO :( 响应内容由单个复杂对象组成,因此我考虑将其写到临时文件中,然后检查该文件。在应用程序在生产环境中运行时,这不是我想做的诊断方法,因此,如果可能的话,请避免使用它。 PS我读了埃里克森的答案,但它提到了输入流,我想知道要
http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read() 文档说“从输入流中读取一些字节,并将它们存储到缓冲区数组b中”。 Java 中的 InputStream read() 如何确定字节数?
问题内容: 我想要类似通用,可重用的方法,该方法将告诉我从流的起点读取的字节数。理想情况下,我希望它可以与所有InputStream一起使用,这样当我从不同的来源获得它们时,就不必包装它们中的每一个。 这样的野兽存在吗?如果不是,那么有人可以推荐现有的计数实现吗? 问题答案: 看一下Commons IO包中的CountingInputStream。它们也很好地收集了其他有用的InputStream