【发布时间】:2017-07-22 14:36:44
【问题描述】:
我从InputStream 读取二进制文件,并且必须将它们保存在内存中以供进一步处理。最明显的做法是将每个文件的读取数据保存在byte[] 数组中。但我想有更优雅的方法可以围绕内存中的“文件 blob”提供一些 OO API。你会推荐什么?
- 必须可以进行多次读取,而不必重建数据结构(读取访问不得影响文件 blob 的内部状态)
- (随机)不需要写访问。无需修改某些字节
- 最后,经过多个访问者的检查后,保存在内存中的文件 blob 将被写入磁盘
- 仅纯 Java 8,没有第三方库,如 Apache Commons、Guava 等。
【问题讨论】:
-
能否将整个 blob 保存在内存中,还是需要实现某种形式的流处理?
-
嗨弗洛里安,这些文件可以完整地保存在内存中。这些文件通常不超过几 MB。内存消耗不是问题,特别是因为我只是暂时需要文件内容。