再会,
目前,我们将 ByteArrayInputStream 用于可重置的 InputStream。我的问题是它消耗了大量内存(与其他一些 InputStream 实现不同,它加载了它在内存中表示的所有字节)。
那么我的问题是,有没有支持 mark() 和 read() 的 InputStream 更轻量级的实现?
我也尝试在 commons-io 中搜索,但我没有看到任何内容。
谢谢,弗兰兹
再会,
目前,我们将 ByteArrayInputStream 用于可重置的 InputStream。我的问题是它消耗了大量内存(与其他一些 InputStream 实现不同,它加载了它在内存中表示的所有字节)。
那么我的问题是,有没有支持 mark() 和 read() 的 InputStream 更轻量级的实现?
我也尝试在 commons-io 中搜索,但我没有看到任何内容。
谢谢,弗兰兹
使用 BufferedInputStream 对你有用吗?在不知道原始数据来自哪里(例如,为什么你有一个 ByteArrayInputStream)的情况下开始回答你的问题有点困难。
我在解析数据时最常使用 PushbackInputStream,并且需要返回并重新读取数据。这是一个解释:
http://tutorials.jenkov.com/java-io/pushbackinputstream.html
如果您需要基于字符的流,还有一个 PushbackReader。