java读取输入流的一部分两次
我有一个ServletInputStream,它可能非常大,我想提取InputStream的前X字节,然后让流处于初始状态
我现在做的是markSupported()、mark()和reset(),但是markSupported返回false,所以我需要实现另一种方法
描述了一种解决方案here来读取两次输入流,但问题是我的流可能非常大,并且我不能将所有的数据都存储在内存中(此外,我不确定最大数组大小是否足够)
有没有办法只读取少量字节,然后将流置于初始状态。解决方法是使用我想要读取的X字节,然后除了下面的过程(我想要避免)之外,让使用的流传递X字节
# 1 楼答案
你看过
java.io.PushbackInputStream
吗如果我理解正确,那么它似乎非常适合您想要实现的目标,尤其是如果您想要检查的字节位于流的开头