开发者社区 问答 正文

两次读取一部分InputStream

我有一个可能很大的ServletInputStream,我想提取InputStream的前X个字节,然后让流处于初始状态。

我现在所做的是markSupported(),mark()和reset(),但是markSupported返回false,因此我需要实现另一种方式。

这里描述了一种解决方案,它可以读取一次输入流两次,但是问题是我的流可能很大,并且我无法将其全部存储在内存中(而且我不确定最大数组大小是否足够) )。

有没有办法只读取少量字节,然后将流置于初始状态。解决方法将是消耗我要读取的X字节,然后让消耗的流通过X字节,除了以下过程(我希望避免)。

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 09:42:48 370 分享 版权
1 条回答
写回答
取消 提交回答
  • BufferedInputStream.markSupported()返回true(请参阅Javadoc)。只需BufferedInputStream用来包装您的流,并将标记限制设置为大于X。

    回答来源:Stack Overflow

    2020-03-27 09:43:14
    赞同 展开评论
问答分类:
问答地址: