我正在實現的一個API處理包含分層結構化數據的InputStreams,即嵌套塊(包括葉塊中的多個圖像)。 (如果您必須知道,我解析的數據是CBEFF。)每個數據塊都以包含有關該塊的一些元數據的標題爲前綴。通過提供InputStream getter來延遲訪問InputStream
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方法時,它們將獲取從內存中提供的圖像數據。我更願意以某種惰性InputStream的形式向我的API的客戶端提供所包含的圖像,以便圖像字節僅從原始InputStream中讀取,因爲客戶端讀取由吸氣。這使得例如可以進行漸進式渲染,這在原始InputStream較慢時很有用。
有沒有一種優雅的方式來解決這與InputStreams?
錯誤,只是刪除所有的圖像閱讀代碼? – EJP 2012-08-13 01:02:42
@EJP,是的,如果只有一個圖像,並且圖像數據是InputStream中的最後一個元素,它就可以工作。我有多個圖像,圖像_n_ + 1的標題跟在圖像_n_的數據之後。我會澄清這個問題。 – martijno 2012-08-13 07:07:47