node.js文件的压缩解压

这篇具有很好参考价值的文章主要介绍了node.js文件的压缩解压。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

流式读写文件

第一步先要弄清楚为什么需要压缩和解压文件,这是因为文件太大了,我们需要将文件进行压缩,既然压缩了。后期就需要对其进行解压缩。我们要考虑最坏的打算,文件过于大,电脑内存没办法一步获取并且存储这么大的文件,所以我们需要使用到流式的方法来处理文件。首先来了解一下如何流式处理文件

知识预知

fs模块里有Stream相关接口:
createReadStream可以创建读文件流,
createWriteStream可以创建写文件流,
pipe可以在两个流之间创建一个管道,一部分一部分的将一个文件流里面的数据传输到另一个文件流里

例子

举个例子,来理解一下使用方法

let fs = require('fs');
let readerStream = fs.createReadStream('a.txt');
let writerStream = fs.createWriteStream('b.txt');
readerStream.pipe(writerStream);

这段代码各位看客可以复制下来运行一下,看看结果,当然你至少要保证读文件流里的路径地址是真实存在的,即同级目录下,你在创建一个a.txt文件,里面随便写上一些内容,运行后会在同级目录下生成一个b.txt文件,这个文件里面的内容就是通过文件流和管道方法,从a.txt文件里复制过来的内容。
这段代码创建了两个文件流,一个是读文件流,一个是写文件流,如何通过pipe方法将两个文件流相通,从读文件流中读数据传入到写文件流里面,这样的方式传输数据不会占用太多空间,因为在这个传输过程中,每次只有一小部分的数据进入占有内存。

压缩解压文件

知识预知

node.js里有个原生模块库zlib进行文件的压缩解压处理
createGzip方法压缩文件,
createGunzip方法解压文件

压缩文件

fs.createReadStream('a.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));

一行一行的来观察这个三行代码,第一行创建了读文件流,读取a.txt里面的文件,第二行通过zlib.createGzip()对数据进行压缩,第三行通过fs.createWriteStream(‘input.txt.gz’)将文件写出到input.txt.gz文件里。这三个部分通过pipe进行连接,也就是说处理的不是一个完整的文件,而是一部分一部分的处理文件,也就是通过流式的方式处理文件。

解压文件

fs.createReadStream('input.txt.gz')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('c.txt'));

通过先前的压缩文件的讲解,详细各位同学应该也能看得懂解压文件的各个部分做了什么事情,希望各位同学自己思考思考。文章来源地址https://www.toymoban.com/news/detail-432135.html

到了这里,关于node.js文件的压缩解压的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux文件压缩与解压

    目录 1、分步压缩 1.1、文件打包 1.2、关于为何需要f参数 1.3、压缩包 2、分步解压 2.1、解压 2.2、解包 3、一步压缩与解压       在Windows上我们常用压缩软件完成文件的压缩,在Linux上我们可以使用命令来完成文件压缩。         首先,任意创建两个测试文件:main.c 和 test。

    2024年02月08日
    浏览(26)
  • 【Linux】文件的压缩和解压

             欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、压缩格式 2、压缩软件 3、tar  命令简介 4、tar  命令压缩  5、总结 在市面上有非常多的文件压缩格式,常见的文件压缩格式有如下几种: ①   z ip  格式

    2024年02月08日
    浏览(27)
  • 【linux】linux系统压缩文件与解压文件

    linux系统中的压缩包有: zip,tar,gzip tar格式:简单的打包,并不会压缩,所以实际上打包好的压缩包是比源文件大的。 gzip格式:这个格式是通过一定的算法,把源文件大小进行压缩后打包,实际压缩包会比源文件小。 语法: tar [参数们] 文件1 文件2 文件3 参数: -c 创建压

    2024年01月18日
    浏览(27)
  • 忘记了压缩包密码,怎么解压文件?

    压缩包带有密码,想要解压文件就必须要输入压缩包密码才能解压出文件的。 所以建议大家,在给压缩包加密之后,一定要设置简单的密码或者是记住密码、或者把密码记录在一个地方。一个压缩包名对应一个密码,这样以后就算忘记了密码,也有迹可循。 但是如果设置了

    2024年02月15日
    浏览(28)
  • 哈夫曼编码&文件压缩和解压

    基本介绍 赫夫曼编码也翻译为 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式, 属于一种程序算法 赫夫曼编码是赫哈夫曼树在电讯通信中的经典的应用之一。 赫夫曼编码广泛地用于数据文件压缩。其压缩率通常在20%~90%之间 赫夫曼码是可变字长编码(VLC)的一种。

    2024年02月03日
    浏览(60)
  • 【用python实现一个压缩文件的解压】

    1.想用python实现一个压缩文件的解压 在Python中,可以使用内置的 zipfile 模块来解压缩文件。以下是一个简单的示例代码,用于解压缩一个zip文件: 在这个示例中,我们首先导入了 zipfile 模块。然后,我们指定要解压的zip文件路径和解压后的文件存放目录。接着,我们使用 w

    2024年02月06日
    浏览(27)
  • 文件压缩与解压性能对比 lzop, gzip

    关于 lzo LZO是一个超级强大的压缩库,最大的特点就是压缩/解压速度极快。LZO 除了极快的压缩和解压速度以外,最重要的特性就是就地解压,即不使用临时文件,这对于体积较大的文件来说,例如光盘映像,是非常合适的。另外,解压无需内存,解压速度与压缩率无关,这两

    2024年02月03日
    浏览(28)
  • Linux系统-gzip命令 – 压缩和解压文件

    gzip命令来自于英文单词gunzip的缩写,其功能是用于压缩和解压文件。gzip是一款使用广泛的压缩工具,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。 据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好的提升存储空间的使用率,

    2024年02月08日
    浏览(39)
  • java利用缓冲区及流式对大文件进行高效读写

    当处理大文件时,使用适当的技术和方法可以提高读写性能和效率。下面是一些针对大文件读写的示例说明: 字符流 缓冲区及分块读写  BufferedInputStream 和 BufferedOutputStream 大文件读取: try (FileInputStream fis = new FileInputStream(\\\"largefile.txt\\\");      BufferedInputStream bis = new BufferedInp

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包