当前位置:网站首页>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
边栏推荐
- 香港暂停进口俄罗斯部分地区禽肉及禽类产品
- 37.轮播图
- MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
- [Data Mining] Written Exam Questions for Sohu Data Mining Engineers
- C语言小笔记+题
- jMeter Thread group 对应的 constant timer
- 构建Buildroot根文件系统(I.MX6ULL)
- MATLAB中readtimetable函数用法
- 刷题-洛谷-P1317 低洼地
- 动态数组底层是如何实现的
猜你喜欢
随机推荐
简单理解 JS 事件循环
五分钟入门文本处理三剑客grep awk sed
动态数组底层是如何实现的
xss课堂内容复现
刷题-洛谷-P1317 低洼地
链队
QT(41)-多线程-QTThread-同步QSemaphore-互斥QMutex
暴雨中的人
1、File对象学习
mdk5.14无法烧录
Web3安全风险令人生畏,应该如何应对?
项目难管理?先学会用好甘特图(内附操作方法及实用模板)
两种白名单限流方案(redis lua限流,guava方案)
How to make good use of builder mode
idea源码无法下载
After the tester with 10 years of service "naked resignation" from the big factory...
微信小程序云开发 | 赠、删、改城市名称信息的应用实现
新式茶饮,卷完水果还能卷什么?
for 循环中的 ++i 与 i++
About the state transfer problem of SAP e-commerce cloud Spartacus UI SSR