Node.js中文件系统fs模块的使用及常用接口(2)

管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外一个流中。以下实例我们通过读取一个文件内容并将内容写入到另外一个文件中。

const fs = require("fs") //创建一个可读流 const readerStream = fs.createReadStream('input.txt') //创建一个可写流 const writerStream = fs.createWriteStream('output.txt') //管道读写操作 //读取input.txt文件内容,并将内容写入到output.txt文件中 readerStream.pipe(writerStream) console.log("程序执行完毕") fs.createReadStream 从文件流中读取数据 const fs = require('fs') const fileReadStream = fs.fileReadStream('demo1.js') let count = 0 let str = '' fileReadStream.on('data', chunk => { console.log(`${++count}接收到:${chunk.length}`) str += chunk }) fileReadStream.on('end', () => { console.log('---结束---') console.log(count + ',' + star) }) fileReadStream.on('error', error => { console.log(error) }) fs.createWriteStream 写入文件 const fs = require("fs") const data ='我是从数据库获取的数据,我要保存起来' //创建一个可以写入的流,写入到文件output.txt中 const writerStream = fs.createWriteStream('output.txt') //使用utf8编码写入数据 writerStream.write(data,'UTF8') //标记文件末尾 writerStream.end() //处理流事件-->finish事件 writerStream.on('finish', () => { /*finish-所有数据已被写入到底层系统时触发。*/ console.log("写入完成。") }) writerStream.on('error', err => { console.log(err.stack); }) console.log("程序执行完毕")

实战:复制图片在项目根目录有一张图片 2020.png ,把它复制到 /wwwroot/images 中

Node.js中文件系统fs模块的使用及常用接口

代码如下

const fs = require("fs") const readStream = fs.createReadStream('./2020.png') const writeStream = fs.createWriteStream('./wwwroot/images/2021.png') readStream.pipe(writeStream)

需要特别注意的是, fs.createWriteStream 要写入的目录一定要带上要复制的文件名,也就是不能写成 fs.createWriteStream('./wwwroot/images/') 否则在 macOS 下会报如下错误:

Error: EISDIR: illegal operation on a directory, open <directory>

本文源码: https://github.com/dunizb/CodeTest/tree/master/Node/fs

总结

到此这篇关于Node.js中fs模块的使用及常用接口的文章就介绍到这了,更多相关node.js fs 模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/07d6accdfc120bcc08a8bd9bd22c9d23.html