본문 바로가기

Development/C#

Compress and Decompress Data Using GZipStream

Introduction

이번시간에는 .Net Framework에서 제공하는 GZipStream을 이용해 간단하게 데이터를 압축하고 압축을 푸는 동작에 대해 소개합니다. GZipStream은 파일을 손실 없이 압축하거나 압축을 풀기 위해 사용되는 gzip 데이터 형식을 사용합니다. gzip 형식에 대한 자세한 내용은 RFC 1952, "GZIP file format specification 4.3"에서 확인 하실 수 있습니다. 참고로 GZip에서는 4GB이상의 파일 압축을 지원하지 않습니다.

Compress/Decompress Extension Method

아래 코드는 BaseStream에 저장된 내용을 압축하거나, 압축을 푼뒤 결과를 OutputStream에 저장하는 Extension Method입니다.

그리고 아래 코드는 압축 / 압축해제 결과를 MemoryStream 로 출력하거나, File로 출력하기 위한 코드입니다.