Example #1
0
        private static void Compress_MultiStream(string filename, int threads)
        {
            var timer = Stopwatch.StartNew();

            // create a new xz file
            var fs = File.Create(filename);
            var xz = new XZCompressStream(fs, threads);
            using (var writer = new StreamWriter(xz, Encoding.UTF8))
            {
                for (int i = 0; i < CNT; i++)
                {
                    writer.WriteLine($"this is line {i} written in {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffffff")}");
                    if (i%(CNT/10) == 0)
                        Console.WriteLine($"writing {i} lines, {timer.Elapsed}");
                }
            }

            // open the same xz file and append new data
            fs = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None);
            xz = new XZCompressStream(fs, threads);
            using (var writer = new StreamWriter(xz, new UTF8Encoding(false, true))) // append data should go without BOM
            {
                for (int i = 0; i < CNT; i++)
                {
                    writer.WriteLine($"DATA APPENDED: this is line {i} written in {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffffff")}");
                    if (i%(CNT/10) == 0)
                        Console.WriteLine($"writing {i} lines, {timer.Elapsed}");
                }
            }
            Console.WriteLine($"finished, {timer.Elapsed}");
        }
Example #2
0
 private static void Compress_SingleStream(string filename, int threads)
 {
     var timer = Stopwatch.StartNew();
     var fs = File.Create(filename);
     var xz = new XZCompressStream(fs, threads);
     using (var writer = new StreamWriter(xz, Encoding.UTF8))
     {
         for (int i = 0; i < CNT; i++)
         {
             writer.WriteLine($"this is line {i} written in {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffffff")}");
             if (i%(CNT/10) == 0)
                 Console.WriteLine($"writing {i} lines, {timer.Elapsed}");
         }
     }
     Console.WriteLine($"finished, {timer.Elapsed}");
 }
Example #3
0
        public static void CompressFile(string inFile, string outFile, FileMode mode = FileMode.Create, int threads = 1, int level = 6)
        {
            var buffer = new byte[1 << 20];

            using (var ins = new FileStream(inFile, FileMode.Open))
                using (var outs = new XZCompressStream(outFile, threads, level, mode))
                {
                    while (true)
                    {
                        var cnt = ins.Read(buffer, 0, buffer.Length);
                        outs.Write(buffer, 0, cnt);
                        if (cnt < buffer.Length)
                        {
                            break;
                        }
                    }
                }
        }
Example #4
0
        private void TestDispose()
        {
            var c = new XZCompressStream("temp1.xz");
            c.Close();
            c.Close();

            c = new XZCompressStream("temp2.xz");
            c.Dispose();
            c.Dispose();

            var d = new XZDecompressStream("temp1.xz");
            d.Close();
            d.Close();

            d = new XZDecompressStream("temp2.xz");
            d.Dispose();
            d.Dispose();
        }
Example #5
0
 public static void CompressFile(string inFile, string outFile, FileMode mode = FileMode.Create, int threads = 1, int level = 6)
 {
     var buffer = new byte[1 << 20];
     using (var ins = new FileStream(inFile, FileMode.Open))
     using (var outs = new XZCompressStream(outFile, threads, level, mode))
     {
         while (true)
         {
             var cnt = ins.Read(buffer, 0, buffer.Length);
             outs.Write(buffer, 0, cnt);
             if (cnt < buffer.Length)
                 break;
         }
     }
 }