我正在实现的 API 处理包含分层结构化数据的 InputStreams,即嵌套块,包括叶块中的许多图像。(如果你必须知道,我正在解析的是CBEFF数据。)每个数据块都以包含有关该块的一些元数据的标题作为前缀。
1st level 1 header
1st level 2 header
1st level 2 data block
2nd level 2 header
2nd level 2 data block
2nd level 1 header
3rd level 2 header
3rd level 2 data block
原始的 InputStream 是我的 API 类的构造函数的参数,并沿层次结构向下传递。目前,我正在 API 类的构造函数中将图像读入字节数组,因此每个构造函数在读取该类负责的完整数据时阻塞,稍后当客户端调用该 API 类的相关 getter 方法时,他们将获得从内存提供的图像数据。我宁愿以某种惰性 InputStreams 的形式向我的 API 的客户端提供包含的图像,这样图像字节只能从原始 InputStream 中读取,因为客户端读取了由吸气剂。例如,这使得进行渐进式渲染成为可能,这很有用,因为原始 InputStream 很慢。
有没有一种优雅的方法可以用 InputStreams 解决这个问题?