Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
fs模块.js:
/*
1.fs.stat检测是文件还是目录(目录文件是否存在)
2.fs.mkdir创建目录(创建之前先判断是否存在)
3.fs.writeFile写入文件(文件不存在就创建,但不能创建目录)
4.fs.appendFile写入追加文件
5.fs.readFile读取文件
6.fs.readdir读取目录
7.fs.rename重命名
8.fs.rmdir删除目录
9.fs.unlink删除文件
*/
varfs=require('fs');//fs是node.js的核心模块,不用下载安装,可以直接引入
//1.fs.stat检测是文件还是目录fs.statSync()同步获取stats对象,通过返回值接收。
fs.stat('html',function(error,stats){
if(error){
console.log(error);
returnfalse;
}
console.log('文件:'+stats.isFile());
console.log('目录:'+stats.isDirectory());
})
//2.fs.mkdir创建目录
fs.mkdir('css',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('创建目录成功');
})
//3.fs.writeFile写入文件(会覆盖之前的内容)(文件不存在就创建)utf8参数可以省略
fs.writeFile('123.txt','你好nodejs覆盖','utf8',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('写入成功');
})
//4.fs.appendFile追加文件
fs.appendFile('123.txt','这是写入的内容\n',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('写入成功');
})
//5.fs.readFile读取文件
fs.readFile('123.txt',function(error,data){
if(error){
console.log(error);
returnfalse;
}
//console.log(data);//data是读取的十六进制的数据。也可以在参数中加入编码格式"utf8"来解决十六进制的问题;
console.log(data.toString());//读取出所有行的信息
})
//6.fs.readdir读取目录下第一级内容把目录下面的文件和文件夹都获取到。
fs.readdir('html',function(error,data){
if(error){
console.log(error);
returnfalse;
}
console.log(data);//data是数组类型,包含文件夹以及文件的名字(只有第一级目录内容)。拿到一个文件夹下面的所有目录
})
//7.fs.rename重命名1.改名2.剪切文件(移动)
fs.rename('html/index.html','html/news.html',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('修改名字成功');
})
//8.fs.rmdir删除目录rmdir这个方法只能删除目录,不能删除文件
fs.rmdir('abc目录',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('删除目录成功');
})
//9.fs.unlink删除文件
fs.unlink('index.txt',function(error){
if(error){
console.log(error);
returnfalse;
}
console.log('删除文件成功');
})
//10.fs.createReadStream从文件流中读取数据,读取的文件比较大时建议用流的方式读取,文件比较大会多次读取。
varfileReadStream=fs.createReadStream('data1.json');
varstr='';
fileReadStream.on('data',(data)=>{
console.log("接收到"+data.length);//文件比较大时,会多次读取,多次执行该回调函数
str+=data;
})
fileReadStream.on('end',()=>{
console.log("---结束---");
console.log(str);
})
fileReadStream.on('error',(error)=>{
console.log(error)
})
//11.fs.createWriteStream写入文件流
varfs=require("fs");
vardata="我是从数据库获取的数据,我要保存起来";
varwriterStream=fs.createWriteStream('output.txt');
writerStream.write(data,'UTF8');
writerStream.end();//标记文件末尾结束写入流,释放资源
writerStream.on('finish',function(){
console.log("写入完成。");
});
writerStream.on('error',function(error){
console.log(error.stack);
});
console.log("程序执行完毕");
//12.pipe管道流
varfs=require("fs");
varreaderStream=fs.createReadStream('input.txt');
varwriterStream=fs.createWriteStream('output.txt');
readerStream.pipe(writerStream);
console.log("程序执行完毕");
//13.fs.access判断目录、文件是否存在(读写权限)
varfs=require('fs');
fs.access('package.json',(err)=>{
console.log(err?'目录/文件不存在':'文件存在,可以进行读写');
});
总结
以上所述是小编给大家介绍的Node.jsfs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!