2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件
2024-09-04 23:03:10
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
所有代码都在 github
最新文章
- AEAI ESB路由转换机制说明
- iOS开发-UINavigationBar透明设置
- Nagios学习笔记二:Nagios概述
- SVM算法入门
- iOS - OC NSKeyedArchiver		数据归档
- [ActionScript 3.0] LocalConnection示例
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- java.lang.NoClassDefFoundError: javax/mail/Authenticator
- mina statemachine解读(二)
- nginx(一)初识nginx
- YEP_footstepsounds
- [CERC2014] Virus synthesis
- Python基础综合练习
- ScrollView嵌套Linearlayout显示不全的解决办法
- vmware添加磁盘后linux无需重启识别的方法
- chrome 搜索 jsonView
- android 开发 实现一个自定义布局的AlertDialog对话框
- python3.6.5 路径处理与规范化
- 活字格Web应用平台学习笔记 7 - 导出 Excel
- jenkins之另辟蹊径实现根据svn项目实现智能选择