2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件
| 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
2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件的更多相关文章
- dotnet 使用 lz4net 压缩 Stream 或文件
在 dotnet 可以使用 LZ4 这个无损的压缩算法,这个压缩算法的压缩率不高但是速度很快.这个库支持在 .NET Standard 1.6 .NET Core .NET Framework Mon ...
- agentzh 的 Nginx 教程(版本 2019.07.31)
agentzh 的 Nginx 教程(版本 2019.07.31) agentzh 的 Nginx 教程(版本 2019.07.31) https://openresty.org/download/a ...
- 在ASP.NET中实现压缩多个文件为.zip文件,实现批量下载功能 (转载并优化处理篇)
转自:http://blog.csdn.net/yanlele424/article/details/6895986 这段时间一直在做一个网站,其中遇到了一个问题,就是在服务器端压缩多个服务器端的文件 ...
- C#压缩、解压缩文件(夹)(rar、zip)
主要是使用Rar.exe压缩解压文件(夹)(*.rar),另外还有使用SevenZipSharp.dll.zLib1.dll.7z.dll压缩解压文件(夹)(*.zip).需要注意的几点如下: 1.注 ...
- 使用GZipStream压缩和解压文件
最近做了一个用.NET里的GZipStream压缩解压缩gzip文件的小程序. GZipStream在System.IO.Compression底下,使用起来也很简单.虽然GZipStream是Str ...
- 通过SharpZipLib来压缩解压文件
在项目开发中,一些比较常用的功能就是压缩解压文件了,其实类似的方法有许多 ,现将通过第三方类库SharpZipLib来压缩解压文件的方法介绍如下,主要目的是方便以后自己阅读,当然可以帮到有需要的朋友更 ...
- asp dotnet core 支持客户端上传文件
本文告诉大家如何在 asp dotnet core 支持客户端上传文件 新建一个 asp dotnet core 程序,创建一个新的类,用于给客户端上传文件的信息 public class Kanaj ...
- 关于SharpZipLib压缩分散的文件及整理文件夹的方法
今天为了解决压缩分散的文件时,发现想通过压缩对象直接进行文件夹整理很麻烦,因为SharpZipLib没有提供压缩进某个指定文件夹的功能,在反复分析了SharpZipLib提供的各个接口方法后,终于找到 ...
- uglifyjs2压缩混淆js文件
uglifyjs可以用来压缩混淆js文件,发布release版本应用利器.在StackOverflow浏览了一下,相比Google Closure和YUI compressor,uglifyjs被推荐 ...
- 用GruntJS合并、压缩CSS资源文件
合并.压缩CSS资源文件用到了grunt-contrib-concat.grunt-css插件,自己npm就可以了,下面直接呈上package.json.Gruntfile.js代码 package. ...
随机推荐
- mac linux 创建文件 Permission denied
解决方法: $ sudo chmod -R 777 目录其中-R 是指级联应用到目录里的所有子目录和文件777 是所有用户都拥有最高权限
- LUOGU P1290 欧几里德的游戏
题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数 ...
- 组件化开发之vue
今天写了写vue的组件化开发demo,有些小的心得.分享一下. 组件化意味着代码可以复用,调用组件就可以了.然后可以通过组件调用组件的相关能力. 例如以前我做组件化开发的一个小项目 原生js组件的实现 ...
- EL表达式如何读取一个string型的list 一个单纯的的字符串list
<c:forEach begin="0" end="${columnList.size()-1}" var="i"> ${ co ...
- 数据库安全 (ch.4)
4.2.4 授权与回收 使用 Grant 授予权限 使用Revoke 回收权限 Grant [权限] ON *.. to * [with grant option] with grant option ...
- ucore os 前初始化
BIOS 初始化完成说起 连接的时候指定了 -Ttext 0x7c00 也指定了 -e start 所以booasm.S 中的start 就呗钦定为程序入口了. 开始就是 屏蔽中断 初始化段寄存器 使 ...
- Python网络爬虫与信息提取[request库的应用](单元一)
---恢复内容开始--- 注:学习中国大学mooc 嵩天课程 的学习笔记 request的七个主要方法 request.request() 构造一个请求用以支撑其他基本方法 request.get(u ...
- ant详细介绍
Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令 ...
- SQLyog12.0.9下载、安装和破解
原文转载连接:https://blog.csdn.net/lihua5419/article/details/73881837/ sqlyog百度云链接(永久有效):http://pan.baidu. ...
- org.apache.jasper.JasperException: xxxx.jsp(118,24) Attribute style invalid for tag formatNumber according to TLD
错误:org.apache.jasper.JasperException: /projm/projBudgetChangeOverview.jsp(118,24) Attribute style in ...