本篇介绍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--fs文件系统
下一篇:nodejs之http介绍


阅读排行


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