当前位置:网站首页>dotnet 使用 lz4net 压缩 Stream 或文件
dotnet 使用 lz4net 压缩 Stream 或文件
2022-08-04 20:51:00 【林德熙】
在 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
所有代码都在 github
边栏推荐
猜你喜欢
IPV6地址
QT(41)-多线程-QTThread-同步QSemaphore-互斥QMutex
Tear down the underlying mechanism of the five JOINs of SparkSQL
大资本已开始逃离加密领域?
linkboy 5.0 正式发布,新增语音识别、图像识别
Getting Started with Lattice Passwords
Tensorflow2 环境搭建
Interviewer: How is the expired key in Redis deleted?
二叉搜索树解决硬木问题
[Academic related] Tsinghua professor persuaded to quit his Ph.D.:I have seen too many doctoral students have mental breakdowns, mental imbalances, physical collapses, and nothing!...
随机推荐
node 的运行命令
数据安全解决方案的发展
伺服电机矢量控制原理与仿真(1)控制系统的建立
【Web漏洞探索】跨站脚本漏洞
EasyUi常用代码
多用户同时远程登录连接到一台服务器
刷题-洛谷-P1304 哥德巴赫猜想
vscode离线安装插件方法
[TypeScript] In-depth study of TypeScript enumeration
推荐系统_刘老师
Red5搭建直播平台
Zero-knowledge proof notes - private transaction, pederson, interval proof, proof of ownership
STP --- 生成树协议
Desthiobiotin衍生物Desthiobiotin-PEG4-Amine/Alkyne/Azide/DBCO
ASP.NET商贸进销存管理系统源码(带数据库文档)源码免费分享
MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
Apache服务器的配置[通俗易懂]
关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
2022-8-4 第七组 ptz 锁与线程池和工具类
无代码平台字段设置:基础设置入门教程