博客详情

nodejs--fs文件流操作 (原创)

作者: 朝如青丝暮成雪
发布时间:2018-02-22 14:31:56  文章分类:nodejs   阅读(1086)  评论(0)


本篇介绍nodejs中  文件流的读取、写入、管道、(二进制)文件复制、文件压缩等。

废话不多讲,还是直接上代码( 流api也比较简单)


02_fileStream.js


//node fs 文件流
//介绍文件流的读取、写入、管道、(二进制)文件复制等

var fs=require("fs");


//文件读取流  编码格式默认为utf-8 可以不设置
 var readStream=fs.createReadStream("./testDir/input.txt",{encoding:'utf-8'});

var str='';
readStream.on('data',function (chunk) {
     str+=chunk;
});
readStream.on('error',function (err) {
    console.log(err);
   // throw  err;
});

readStream.on('end',function () {
    console.log('文件流读取完毕:');//ok
    console.log(str);
});

//写入文件的编码格式默认为utf-8  这里也可以不设置
var  writeStream =fs.createWriteStream('./testDir/out.txt');

writeStream.on('finish',function () {
   console.log('写入文件完成');
});
writeStream.on('error',function (err) {
    console.log(err);
});

//编码格式utf-8 (缺省值 可以不设置)
writeStream.write('这是一段出入的文本\n','utf-8');
writeStream.end();


//pipe 管道流
//创建一个可读流
var readStream = fs.createReadStream('./testDir/input.txt');

// 创建一个可写流
var writeStream = fs.createWriteStream('./testDir/output.txt');

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readStream.pipe(writeStream);

//pipe 管道流复制二进制文件(图片)  案例
var readStream =fs.createReadStream('./testDir/1.png');
var writeStream =fs.createWriteStream('./testDir/2.png');
readStream.pipe(writeStream);

zlib 文件压缩及解压


03_zlib_file.js


var fs=require("fs");
//zlib 压缩和解压文件

var zlib = require('zlib');

//压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('./testDir/input.txt')
    .pipe(zlib.createGzip())
    .pipe(fs.createWriteStream('./testDir/input.txt.gz'));
//
// console.log("文件压缩完成。");

// 解压 input.txt.gz 文件为 input2.txt
fs.createReadStream('./testDir/input.txt.gz')
    .pipe(zlib.createGunzip())
    .pipe(fs.createWriteStream('./testDir/input2.txt'));

console.log("文件解压完成。");





关键字:  nodejs
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号