1
,我使用的減壓API具有以下API:創建墊片流
Decode(Stream inStream,Stream outStream)
我想解決這個API創建的包裝,這樣我可以創建自己的Stream
類提供瞭解碼的數據。
Stream decodedStream=new BlaDecodeStream(inStream);
所以,我可以比以同樣的方式使用該流作爲參數傳遞給構造函數的XmlReader一個可能使用System.IO.Compression.GZipStream
。據我所知,唯一的其他選項是將StreamStream流設置爲MemoryStream或FileStream並進入兩跳。我處理的文件非常多,所以這些選項都不是特別有吸引力。
在我重新發明車輪之前,是否有任何現有技術可以借鑑,或者我可能錯過了BCL中的某些東西? CircularStream
實現here會去幫助,但我真的想找一些類似的東西,當流的內部緩衝區是'空'時,從它讀取和阻止時,會阻止(而不是over/underrun)內部緩衝區在寫入時已滿。
以這種方式,它可以用作參數outStream
,並且同時(即從另一個線程)可以被XmlReader
讀取。