Java InputStream大小

use*_*669 6 java nio inputstream

我需要在不创建File实例的情况下获取InputStream的字节大小.有没有办法使用Java NIO?

Jon*_*eet 25

一般InputStream吗?您必须继续读取和读取(例如,反复进入相同的缓冲区),计算您已读取的字节数,直到您到达流的末尾.

当然,您将无法自行读取数据...如果您想这样做,您需要在阅读时保留数据,例如将数据复制到ByteArrayOutputStream.

(如果你能够在计算长度的同时处理数据,那么就这样做 - 当你用循环读取它时,每次都读入同一个缓冲区,只需增加一个计数器来记录你的数量'你已经读过了.你还没有真正向我们提供有关你想用流做什么的任何信息.)


use*_*421 6

它原则上是不可知的(考虑一个永不停止写作的同伴),你不需要它.只需使用固定大小的缓冲区读取和写入循环.NIO不提供任何神奇的解决方案.