GZipStreamを使った圧縮・解凍について
- 題名: GZipStreamを使った圧縮・解凍について
- 著者: れお丸
- 日時: 2006/06/08 10:55:53
- ID: 16149
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: GZipStreamを使った圧縮・解凍について
- 著者: ガッ
- 日時: 2006/06/08 11:06:46
- ID: 16150
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: GZipStreamを使った圧縮・解凍について
- 著者: れお丸
- 日時: 2006/06/08 11:53:47
- ID: 16156
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: GZipStreamを使った圧縮・解凍について
- 著者: ぽぴ王子
- 日時: 2006/06/08 11:58:01
- ID: 16157
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: GZipStreamを使った圧縮・解凍について
- 著者: れお丸
- 日時: 2006/06/08 12:02:31
- ID: 16158
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: GZipStreamを使った圧縮・解凍について
- 著者: れお丸
- 日時: 2006/06/08 12:27:37
- ID: 16160
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: GZipStreamを使った圧縮・解凍について
- 著者: ぽぴ王子
- 日時: 2006/06/08 13:12:05
- ID: 16161
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして。
GZipStreamとMemoryStreamを使い、ファイルではなく
メモリ内で圧縮と解凍を行っているのですが解凍がなぜかできません。
サンプルのソースは以下のようになってます。
単純に、一度Byte配列を圧縮し、圧縮後のByte配列を再度解凍しています。
(しようとしています。。。)
ここで、下から3行目のReadで、戻り値も0で圧縮解除後のデータが
取得できないのはなぜでしょう?
汚いソースで恐縮ですが、よろしくご教示ください。
Dim orgData(0 To 9) As Byte '元データのByte配列
Dim i As Byte
'元データの設定
For i = 0 To 9
orgData(i) = i
Next
'圧縮
Dim comp() As Byte '圧縮後のByte配列
Dim CompMemStream As New System.IO.MemoryStream()
Dim CompGzipStream As New Compression.GZipStream _
(CompMemStream, CompressionMode.Compress)
CompGzipStream.Write(orgData, 0, orgData.Length) ’圧縮
comp = CompMemStream.ToArray() '圧縮後のByte配列をMemoryStreamから取得
CompGzipStream.Close()
CompMemStream.Close()
'解凍
Dim decomp(0 To 9) As Byte '解凍後のByte配列
Dim DeCompStream As New MemoryStream(comp) '圧縮されたByte配列からMemoryStreamを生成
Dim DeCompGzipStream As New Compression.GZipStream _
(DeCompStream, CompressionMode.Decompress)
Dim ret As Integer
ret = DeCompGzipStream.Read(decomp, 0, 10) 'ここで圧縮解除後のデータが取得できない
DeCompGzipStream.Close()
DeCompStream.Close()