我有大量的「輸入」數據,我想壓縮到多個bzip2
流,而無需將數據寫入多箇中間文件。可以重複調用BZ2_bzBuffToBuffCompress()嗎?
我可以把輸入數據塊到緩衝區中,使用BZ2_bzBuffToBuffCompress()
來壓縮緩衝區的bzip2味字節,並與新的數據隨後BZ2_bzBuffToBuffCompress()
調用重複,直到我有沒有留下更多的輸入數據?
的bzip2 documentation說以下內容:
壓縮以這種方式是一次性事件,與該功能的單一調用來完成。得到的壓縮數據是一個完整的bzip2格式數據流。沒有任何機制可以提供額外的電話來提供額外的輸入數據。如果您想要這種機制,請使用低級界面。
這是否意味着我不能在新填充的緩衝區大小的輸入數據上重新運行BZ2_bzBuffToBuffCompress()
?我應該用BZ2_bzWrite()
代替嗎?
編輯
我其實是輸出到一個檔案文件,其中可能包含一個或一個以上的bZIP流。
我在閱讀文檔時的理解是,您不能將更多數據添加(追加)到已壓縮的緩衝區,但創建多個單獨的壓縮流或緩衝區是可以的。 – 2012-08-05 13:03:58