当前位置:网站首页>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
边栏推荐
猜你喜欢

Five Minutes Introductory Text Processing Three Musketeers grep awk sed

搭建MyCat2一主一从的MySQL读写分离

如何进行AI业务诊断,快速识别降本提效增长点?

Desthiobiotin-PEG4-Azide_脱硫生物素-叠氮化物 100mg

Using Baidu EasyDL to realize forest fire early warning and identification

【debug】postgres数据存储错乱
![[TypeScript] In-depth study of TypeScript enumeration](/img/27/4836e59528bb5a51ffc1cf9961c6b6.png)
[TypeScript] In-depth study of TypeScript enumeration

vscode离线安装插件方法

面试官:Redis中过期的key是怎么被删除的?

刷题-洛谷-P1319 压缩技术
随机推荐
常用正则表达式[通俗易懂]
After the tester with 10 years of service "naked resignation" from the big factory...
After encountering MapStruct, the conversion between PO, DTO and VO objects is no longer handwritten
web 应用开发最佳实践之一:避免大型、复杂的布局和布局抖动
机器学习_02
实现菜单拖拽排序
STP --- 生成树协议
adb shell input keyevent 模拟按键事件
EasyUi常用代码
【手把手教你使用STM32HAL库的串口空闲中断】
伺服电机矢量控制原理与仿真(1)控制系统的建立
STP基本配置及802.1D生成树协议的改进
Debug locally and start the local server in vs code
win10终端中如何切换磁盘
2022-8-4 第七组 ptz 锁与线程池和工具类
Big capital has begun to flee the crypto space?
【一起学Rust | 进阶篇 | Service Manager库】Rust专用跨平台服务管理库
linkboy 5.0 正式发布,新增语音识别、图像识别
长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的应用
uwp ScrollViewer content out of panel when set the long width