DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DeflateStreamについて

  • 題名: DeflateStreamについて
  • 著者: ぺんたごん
  • 日時: 2009/07/05 17:14:31
  • ID: 24883
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[C#2.0]
分類:[.NET]

DeflateStreamクラスでバイナリを圧縮する処理を作っています。

保存用FileStreamクラスをA、コンストラクタにAを指定したDeflateStreamをBとします。

メインデータをB.Writeで圧縮で書き出し、
最後に付加情報としてA.Writeで非圧縮で出力しました。
すると、付加情報のさらに後ろに2バイトか3バイト余分に
末尾にデータができてしまいます。

バイト数が変動しているようで、さらに内容もよくわからず
自分で付けたフッタ情報を取得する位置の算出に悩んでいます。

この余分にはき出されるデータを抑制する方法、または
このデータの仕様?がありましたらご教示ください

お願いします
DeflateStream コンストラクタに、自身を Close しても基 Stream は Close しないという leaveOpen パラメータがあるのでそれを使ってください。
その上で、DelfateStream を Close 後、基 Stream に追記します。

展開の方がめんどくさいですけど。
  • 題名: Re[2]: DeflateStreamについて
  • 著者: ぺんたごん
  • 日時: 2009/07/05 21:14:24
  • ID: 24885
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No24884に返信(Hongliangさんの記事)
> DeflateStream コンストラクタに、自身を Close しても基 Stream は Close しないという leaveOpen パラメータがあるのでそれを使ってください。
> その上で、DelfateStream を Close 後、基 Stream に追記します。
>
> 展開の方がめんどくさいですけど。
あちがとうございます、いったん閉じて開き直さないといけないかなーと思ってましたが
パラメータ指定でB閉じてもAが生きてるんですね。

試してみて期待していた出力結果になりました!ありがとうございます。
展開のほうは試行錯誤してみて、行き詰まったら再度質問させていただきます。

DOBON.NET | プログラミング道 | プログラミング掲示板