zoukankan      html  css  js  c++  java
  • 2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件

    title author date CreateTime categories
    dotnet 使用 lz4net 压缩 Stream 或文件
    lindexi
    2019-08-31 16:55:58 +0800
    2019-4-2 8:4:12 +0800
    dotnet

    在 dotnet 可以使用 LZ4 这个无损的压缩算法,这个压缩算法的压缩率不高但是速度很快。这个库支持在 .NET Standard 1.6 .NET Core .NET Framework Mono Xamarin 和 UWP 运行

    压缩算法 LZ4 的原代码是使用 C 写的,请看代码 本文的 K4os.Compression.LZ4 是使用 C# 写的,里面也有版本使用了 C++ 代码

    因为很多时候都是对 Stream 压缩,所以重点告诉大家如何进行 Stream 压缩

    注意这个压缩算法不是 zip 或 rar 压缩,也就是压缩文件不能使用现在的 zip 压缩软件打开,同时压缩的内容也不是文件

    使用 NuGet 安装 K4os.Compression.LZ4.Streams 很简单就可以使用 LZ4 压缩

    如我需要压缩一个字符串到文件

    using K4os.Compression.LZ4.Streams;
    
                using (var stream = LZ4Stream.Encode(File.Create("1.lz4")))
                {
                    using (var sw = new StreamWriter(stream))
                    {
                        sw.WriteLine("林德熙是逗比");
                    }
                }
    

    这样就将字符串压缩进了文件

    调用 LZ4Stream.Encode 传入 stream 对返回的 stream 写入将会压缩到传入的 stream 如上面代码

    在解压缩是 LZ4Stream.Decode 方法,如解压缩上面的文件

                using (var stream = new StreamReader(LZ4Stream.Decode(File.Open("1.lz4", FileMode.Open))))
                {
                    Console.WriteLine(stream.ReadLine());
                }

    运行代码可以发现输出逗比这就是 LZ4 简单的使用,其实复杂的使用和简单的也差不多

    在 Encode 和 Decode 里面还可以传入参数,用于配置更高性能的压缩

    lz4/lz4: Extremely Fast Compression algorithm

    K4os.Compression.LZ4

    所有代码都在 github

  • 相关阅读:
    搜索旋转排序数组
    SpringBoot整合mybatis
    《浪潮之巅》阅读笔记01
    阅读杂记01
    go home or stand up
    关于URL编码/javascript/js url 编码(轉)
    水晶报表 相关。
    Format函数(转)
    asp 亂碼問題。
    圣人不死,大盗不止
  • 原文地址:https://www.cnblogs.com/lindexi/p/12086086.html
Copyright © 2011-2022 走看看