Writes a sequence of bytes to the current stream and advances the current position within
this stream by the number of bytes written.
Syntax
Parameters
- buffer
- An array of bytes. This method copies count bytes from
buffer to the current stream.
- offset
- The zero-based byte offset in buffer at which to begin
copying bytes to the current stream.
- count
- The number of bytes to be written to the current stream.
Example
The following example demonstrates how to read data from a FileStream and compress it to a
MemoryStream using the GZipCompressedStream class.
| Visual Basic | Copy Code |
|---|
Imports System.IO
Imports Xceed.Compression
Imports Xceed.Compression.Formats
Dim sourceStream As New FileStream("d:\data.txt", FileMode.Open)
Dim destinationStream As New MemoryStream()
Dim gzip As New GZipCompressedStream(destinationStream)
Dim buffer(32768) As Byte
Dim bytesRead As Integer = 0
Do
bytesRead = sourceStream.Read(buffer, 0, buffer.Length)
If bytesRead > 0 Then
gzip.Write(buffer, 0, bytesRead)
End If
Loop Until bytesRead = 0
sourceStream.Close()
gzip.Close()
|
| C# | Copy Code |
|---|
using System.IO; using Xceed.Compression; using Xceed.Compression.Formats;
using( FileStream sourceStream = new FileStream( @"d:\data.txt", FileMode.Open ) )
{
// Because the GZipCompressedStream will automatically close the destination
// memory stream, there is no need to declare the memory stream within a using
// statement or to call Close once we are done with the stream.
//
// If you do not want the inner stream to be closed by the GZipCompressedStream
// then set the GZipCompressedStream's Transient property to true.
MemoryStream destinationStream = new MemoryStream();
using( GZipCompressedStream gzip = new
GZipCompressedStream( destinationStream ) )
{
// 32K at a time.
byte[] buffer = new byte[ 32768 ];
int bytesRead = 0;
// Loop until we have nothing more to read from the source
stream.
while( ( bytesRead = sourceStream.Read(
buffer, 0, buffer.Length ) ) > 0 )
{
gzip.Write( buffer, 0, bytesRead );
}
}
// To get access to the MemoryStream's compressed data, you can use
// byte[] compressedData = destinationStream.ToArray();
// ToArray() works even when the memory stream is closed.
} |
Remarks
Requirements
Target Platforms: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows Vista Business; Windows Vista Business 64-bit edition; Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic; Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition; Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP Service Pack 2
Supported Frameworks: Microsoft .NET Framework version 2.0; Microsoft .NET Framework version 3.0
See Also