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

最新文章

  1. AEAI ESB路由转换机制说明
  2. iOS开发-UINavigationBar透明设置
  3. Nagios学习笔记二:Nagios概述
  4. SVM算法入门
  5. iOS - OC NSKeyedArchiver 数据归档
  6. [ActionScript 3.0] LocalConnection示例
  7. Genymotion配置及使用教程(最新最完整版附各部分下载地址)
  8. java.lang.NoClassDefFoundError: javax/mail/Authenticator
  9. mina statemachine解读(二)
  10. nginx(一)初识nginx
  11. YEP_footstepsounds
  12. [CERC2014] Virus synthesis
  13. Python基础综合练习
  14. ScrollView嵌套Linearlayout显示不全的解决办法
  15. vmware添加磁盘后linux无需重启识别的方法
  16. chrome 搜索 jsonView
  17. android 开发 实现一个自定义布局的AlertDialog对话框
  18. python3.6.5 路径处理与规范化
  19. 活字格Web应用平台学习笔记 7 - 导出 Excel
  20. jenkins之另辟蹊径实现根据svn项目实现智能选择

热门文章

  1. js 高亮显示关键字
  2. AT2164 Rabbit Exercise
  3. angular4 自定义表单验证Validator
  4. win7关闭休眠功能,清除Hiberfil.sys
  5. Python发送QQ消息
  6. neo4j遍历和图算法
  7. birt运行环境
  8. BIRT简介
  9. JavaScript 对象的所有方法名称转换为大写
  10. Js 克隆