Java:如何在不分配完整内存的情况下计算从 InputStream 读取的字节数

标签 java stream limit

我有一个 Java 后端,用户可以在其中上传文件。我想将这些上传的文件限制为最大大小,并希望在上传发生时检查上传的字节数,并在达到限制后立即中断传输。

目前我在分配前使用 InputStream.available() 来确定估计的大小,但这似乎被认为是不可靠的。

有什么建议吗?

最佳答案

您可以使用 Guava's CountingInputstreamApache IO's CountingInputStream当您想知道已读取了多少字节时。

另一方面,如果您想在达到某个限制时立即停止上传,那么只需在读取字节 block 时进行计数,并在超过限制时关闭流。

关于Java:如何在不分配完整内存的情况下计算从 InputStream 读取的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678276/

相关文章:

javascript - 任何适用于 iOS 的 WebRTC 客户端实现?

sql - 在 SQL 中,LIMIT 是否返回按时间顺序最后插入的行?

memory - 每个 CUDA 线程的本地内存量

java - n! BigInteger 循环

java - new MQConnectionFactory() 在 JBoss 中抛出 NullPointerException

node.js - forEach 中的 Node 惰性和异步函数

ios - 如何在 Swift 中限制不同 UITextField 的文本长度?

java - 提取自增主键的标准做法是什么?

java - 多维数组的调用方法

java - 通过 ObjectStream 序列化问题发送/接收