小编给大家分享一下Nodejs文件操作和stream的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
NodeJS文件操作
创建目录和文件
/* learnNode.js */
let fs = require('fs');
fs.mkdir('js',(err)=>{
if(err){
console.log('出错')
}else{
console.log('未出错')
}
})
/* learnNode.js */
let fs = require('fs');
fs.writeFile('./js/newJs.js','console.log("写入这个")',(err)=>{
if(err){
console.log('出错')
}else{
console.log('没出错')
}
})

检测文件
/* learnNode.js */
let fs = require('fs');
fs.stat('./js/newJs.js', (error, stats) => {
if(error) {
console.log(error);
return false;
} else {
console.log(`是否文件:${stats.isFile()}`);
console.log(`是否目录:${stats.isDirectory()}`);
return false;
}
})

删除文件和删除目录
/* learnNode.js */
let fs = require('fs');
fs.unlink('./js/newJs.js', (err) => {
if (err) throw err;
console.log('文件已删除');
});
fs.rmdir('./js',(err)=>{
if (err) throw err;
console.log('目录已删除');
})

重命名
/* learnNode.js */
let fs = require('fs');
fs.rename('oldJs.js','newJs.js',(err)=>{
if(err){
console.log('出错')
}else{
console.log('未出错')
}
})
/* learnNode.js */
let fs = require('fs');
fs.rename('newJs.js','./js/oldJs.js',(err)=>{
if(err){
console.log('出错')
}else{
console.log('剪切到js文件夹内了')
}
})
追加内容
/* learnNode.js */
let fs = require('fs');
fs.appendFile('newJs.txt','我是追加的内容',(err)=>{
if(err){
console.log('出错')
}else{
console.log('追加内容')
}
})

读取文件和读取目录
/* learnNode.js */
let fs = require('fs');
fs.readFile('newJs.txt', (err, data) => {
if(err) {
console.log('出错');
} else {
console.log("读取文件成功!");
console.log(data);
}
})

/* learnNode.js */
let fs = require('fs');
fs.readdir('./', (err, data) => {
if(err) {
console.log('出错');
} else {
console.log("读取目录成功!");
console.log(data);
}
})

stream(流)
最后我们来简单聊聊stream
,翻译过来就是流
的意思,提到流你会想到什么,河流,水流,都是从一个源头到另一个源头,就像水龙头从开关到流到地面,stream
也是这样一个过程。
Stream 有四种流类型:
在stream的过程中,我们也有事件可以使用,比如检测到错误触发的error
,有数据时触发的data
。
接下来简单举个例子理解一下吧。
读取流
var fs = require("fs");
var data = '';
// 创建可读流
var readerStream = fs.createReadStream('newJs.txt');
// 设置编码为 utf8。
readerStream.setEncoding('UTF8');
// 处理流事件 遇到有数据时执行这个
readerStream.on('data', function(chunk) {
data += chunk;
console.log(chunk,'流遇到数据了')
});
// 处理流事件 流结束时执行这个
readerStream.on('end',function(){
console.log(data,'流结束了');
});
// 处理流事件 流报错时执行这个
readerStream.on('error', function(err){
console.log(err.stack);
});
console.log("程序执行完毕");
我们一开始可以创建一个可读流fs.createReadStream()
,参数是你要读的文件路径。
当遇到了数据时会执行readerStream.on('data',callback())
,如下图所示。
当流结束时会执行readerStream.on('end',callback())
,如下图所示。

写入流
var fs = require("fs");
var data = '我是小卢,我再写入流';
// 创建一个可以写入的流,写入到文件 newJs.txt 中
var writerStream = fs.createWriteStream('newJs.txt');
// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');
// 标记文件末尾
writerStream.end();
// 处理流事件 完成和报错时执行
writerStream.on('finish', function() {
console.log("写入完毕");
});
writerStream.on('error', function(err){
console.log(err.stack);
});
console.log("程序执行完毕");
我们首先创建一个流,然后将data
数据写入newJs.txt
文件中。
当流写入完毕时会执行readerStream.on('finish',callback())
,如下图所示。


以上是“Nodejs文件操作和stream的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!