static void Main(string[] args) { var data = Encoding.ASCII.GetBytes("Hello World!"); Console.WriteLine("SnappyCodec roundtrip: {0}", Encoding.ASCII.GetString(SnappyCodec.Uncompress(SnappyCodec.Compress(data)))); var buffer = new MemoryStream(); var stream = new SnappyStream(buffer, CompressionMode.Compress); stream.Write(data, 0, data.Length); stream.Close(); buffer = new MemoryStream(buffer.ToArray()); stream = new SnappyStream(buffer, CompressionMode.Decompress); var roundtrip = new byte[data.Length]; int read = stream.Read(roundtrip, 0, data.Length); if (read != data.Length) { throw new ApplicationException(); } if (0 != stream.Read(roundtrip, 0, data.Length)) { throw new ApplicationException(); } Console.WriteLine("SnappyStream roundtrip: {0}", Encoding.ASCII.GetString(roundtrip)); }
public void Snappier() { _memoryStream.Position = 0; using var stream = new SnappyStream(_memoryStream, CompressionMode.Decompress, true); while (stream.Read(_buffer, 0, ReadSize) > 0) { } }
static void ProcessFile(Stream input, Stream output, Options options) { var buffer = new byte[8192]; if (options.Mode == CompressionMode.Compress) { using (var compressor = new SnappyStream(output, CompressionMode.Compress, true)) { while (true) { int read = input.Read(buffer, 0, buffer.Length); if (read == 0) { break; } compressor.Write(buffer, 0, read); } } } else if (!options.Test) { using (var decompressor = new SnappyStream(input, CompressionMode.Decompress, true)) { while (true) { int read = decompressor.Read(buffer, 0, buffer.Length); if (read == 0) { break; } output.Write(buffer, 0, read); } } } else { using (var decompressor = new SnappyStream(input, CompressionMode.Decompress, true)) { while (true) { int read = input.Read(buffer, 0, buffer.Length); if (read == 0) { break; } } } } }