java - 确定 InputStream 的大小

标签 java arrays size inputstream

我目前的情况是:我必须读取一个文件并将内容放入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 对象,类似于 FileItemFactoryServletFileUpload 来自 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/

相关文章:

Java - 检查字符串是否只包含某些字符(即 DNA/RNA)

file - 更改批处理文件中文本的字体和大小

java swing setXXXSize() 替代方案?

java - Android 应用程序数据 - 不断以可读格式写入数据

java - 什么是好的开源聊天解决方案?

sql - 根据位置将数组中的元素相乘

python - 逐元素乘以 2D NumPy 数组并求和

javascript - 我怎样才能加快这个过滤方法?

c - 我怎么知道c中指针变量的分配内存大小

java - 如何在正则表达式中定义开关案例?