これらのクラスでは、Zip ファイル内のデータはもちろん、あらゆる .NET ストリーム上でデータ圧縮を使用できます。
C1ZStreamReaderオブジェクトと C1ZStreamWriter オブジェクトを使用するには、これらのオブジェクトを通常のストリームに付加し、これらを介してデータの読み取りと書き込みを行います。データは基底のストリームに対してオンザフライで圧縮(または展開)されます。
この設計により、ネイティブの .NET ストリームとうまく統合できます。その仕組みは以下の図のようになります。
たとえば、以下のコードでは ADO.NET DataTable オブジェクトをストリームに保存してから、それを再度読み取っています。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
' DataTable を圧縮ストリームに保存します。 Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter() Dim fout As New FileStream("test.tmp", FileMode.Create) bf.Serialize(fout, DataTableOut) fout.Close() ' 圧縮データを読み取ります。 Dim fin As New FileStream("test.tmp", FileMode.Open) Dim DataTableIn As DataTable = bf.Deserialize(fin) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
//DataTable を圧縮ストリームに保存します。 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter() FileStream fout = new FileStream("test.tmp", FileMode.Create); bf.Serialize(fout, DataTableOut); fout.Close(); //圧縮データを読み取ります。 FileStream fin = new FileStream("test.tmp", FileMode.Open); DataTable DataTableIn = (DataTable)bf.Deserialize(fin) |
データ圧縮を追加するには、以下の2行のコードを追加するだけです。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
'DataTable を圧縮ストリームに保存します。 Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter() Dim fout As New FileStream("test.tmp", FileMode.Create) Dim compressor As New C1ZStreamWriter(fout) bf.Serialize(compressor, DataTableOut) fout.Close() '圧縮データを読み取ります。 Dim fin As New FileStream("test.tmp", FileMode.Open) Dim decompressor As New C1ZStreamReader(fin) Dim DataTableIn As DataTable = bf.Deserialize(decompressor) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
//DataTable を圧縮ストリームに保存します。 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); |