これらのクラスでは、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(); |
|