示例#1
0
        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));
        }
示例#2
0
        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;
                        }
                    }
                }
            }
        }