缓存 BufferedInputStream?明智的?

Cache BufferedInputStream? Wise?

我正在构建与缓存相关的东西,想了解在关闭底层 InputStream 的同时缓存 BufferedInputStream 是否明智。

在我的例子中,我正在缓存网络调用(我知道我们在 HTTP 中缓存并且很清楚如何缓存)所以对象被解析为许多不同的类型,我读取 InputStream 并将其解析为相关类型据我了解, BufferedInputStream 将在其中存储所有字节。我没有发现缓存、重置和恢复有任何问题!

需要有经验的人知道!谢谢!

仅当原始输入流包含的数据少于 BufferedInputStream 的缓冲区大小时才会起作用,默认值应为 8K。

也不好依赖这个,它不是为了让你重用它而设计的,缓冲区只是为了避免小尺寸读取过多。由于它的目的,你不能保证实现做你想做的,理论上它会随时访问底层流。

虽然您可以进入源代码来确认行为,但如果您愿意这样做,为什么不克隆并创建您自己的 CachedInputStream?