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

2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件相关推荐

  1. [2019.7.31~2019.8.15]纪中集训游记

    开坑 这是一篇(也许会变成一套)无聊的游记. https://jzoj.net/senior/ Day0(2019.7.31) 启程 如果没记错的话,与同学们相约在机场的时间应该是9:00,然而我10 ...

  2. AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会【IT新未来: 5G与人工智能】内容概要

    AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会[IT新未来: 5G与人工智能]内容概要 导读 5G+AI双核启动会更加珠联璧合.相得益彰. IOT 采集数据 → Deel Learn ...

  3. 2019.12.31大一练习赛

    2019.12.31大一练习赛 寒假培训第一天,老师认为我们题做得太快了,于是晚上搞了一场练习赛. 第1题 QWQ和QAQ Description QWQ的朋友QAQ开了一个A工厂,但QAQ不是一个很 ...

  4. 【小故事大智慧】学习,何为会与不会?------记2019.12.31与郭老师和米老师的聊天

    今天给大家分享一下,我与男神女神之间的小故事,小故事大智慧呦,希望大家可以共勉! 这样吧,先拿出我的杀手锏,给大家出两道小学二年级的乘法题好啦,注意呦,这可是男神出的,要重视啊,重视啊,重视哈---- ...

  5. linux中文件打包压缩,linux在文件打包和压缩

    1. 打包和压缩文件 linux现在经常使用gzip和bzip2要压缩的文件.tar压缩文件. 经常使用的扩展: *.gz   gzip压缩文件 *.bz2  bzip2压缩的文件 *.tar   t ...

  6. 用7z命令压缩多个文件夹和文件

    压缩目标: 文件夹:Folder1 文件:Folder2\Folder2_File2.txt 文件夹:Folder3 参考之前的文章: <用7z命令压缩文件夹> https://blog. ...

  7. 通过C#代码 压缩/解压文件

    通过引用一DLL(ICSharpCode.dll)可以实现所述功能... 一.压缩文件 using System; using ICSharpCode.SharpZipLib; using ICSha ...

  8. Ubuntu下压缩解压文件

    一般来说ubuntu 下带有tar 命令,可以用来解压和压缩之用.但是我们经常要与win下用户打交道,所以要安装一些解压工具如:rar zip 等命令. 如果要需要用到zip工具那么可以: sudo ...

  9. mysql 数据文件压缩,压缩MySQL数据文件的妙招

    MySQL数据文件如果过大,能否进行压缩呢?答案是肯定的.下面就教您一个压缩MySQL数据文件的方法,希望对您能有所帮助. MySQL使用一段时间后,MySQL数据文件ibdata会增长得很大(主要是 ...

  10. 测试掌握的Linux解压,轻松掌握Linux压缩/解压文件的方法

    对于在Linux下解压大型的*.zip文件,相信大家一般都会通过使用winrar直接在smb中来进行解压的操作,虽然说最终可能能够解压但有时候会存在解压时间长或者网络原因出错等故障的情况出现.那么有没 ...

最新文章

  1. linux安装vi 插件,Ubuntu上Vim安装NERDTree插件的详细操作步骤
  2. Html5页面和Native App怎么进行交互
  3. SpringCloud Config简介
  4. tableau必知必会之学做常用的倾斜图(slopegraph)
  5. linux内核编译与新内核启用
  6. CodeForces - 1287C Garland(贪心)
  7. .NET c# Color对象的使用介绍(转)
  8. JS只能输入数字,数字和字母等的正则表达式
  9. linux下Oracle11g RAC搭建(六)
  10. java强制gc_java应用性能调优之详解System的gc垃圾回收方法
  11. handler和thread之间如何传输数据_HTTP和TCP之间的关系
  12. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  13. Eclipse 最佳字体 推荐
  14. robotium android,Robotium 测试Android apk安装包
  15. springboot借助sftp将文件上传到远端的nginx服务器中,然后将文件路径存进数据库
  16. device-side assert triggered原因和解决方法
  17. JAVA语言五猴分桃简单解法_五猴分桃问题详解
  18. c语言中正弦函数的定义,三角函数基本概念 | 玄数
  19. 我的投资经历(写给关注我的友军)
  20. ESP8266-Arduino编程实例-DS1624数字温度传感器驱动

热门文章

  1. creator DrawCall详解
  2. 2017幼儿园计算机培训,2017-2018学年度幼儿教师培训记录.doc
  3. 小程序 input type=‘number‘ 不能输入小数点??
  4. 如何查看vue版本和vue/cli的版本
  5. Linux 串口编程(C语言)
  6. php微信支付金额隐藏,【php】复盘微信支付金额不正确问题—PHP浮点型计算
  7. 后台管理,给列表页新增查询功能,所遇到的问题及感想
  8. 20090613 - 批量操作 Windows Live Mail 邮件的办法
  9. 辞职后三个月才能走是不是违法的
  10. 如何在HTML中设计步骤进度条,使用纯CSS制作步骤进度条