基于node.js的fs核心模块读写文件操作(实例讲解)
node.js里fs模块
常用的功能
实现文件的读写目录的操作
-同步和异步共存,有异步不用同步
-fs.readFile都不能读取比运行内存大的文件,如果文件偏大也不会使用readFile方法
-文件大分流读取,stream
-引入fs模块
-letfs=require('fs')
同步读取文件
-fs.readFileSync('路径',utf8);
letresult=fs.readFileSync('./1.txt','utf8');
异步读取文件,用参数err捕获错误
-fs.readFile('路径','utf8',function(){})
fs.readFile('./name.txt','utf8',function(err,data){
if(err){
console.log(err)
}else{
console.log(data)
}
})
同步写入文件
-fs.writeFileSync("路径",写入的数据)
fs.writeFileSync("./1.txt",JSON.stringify({name:1}))
异步写入文件
-fs.writeFile('路径',写入的数据,callback)
fs.writeFile('./1.txt','aaaaa',function(err){
if(err){
console.log(err);
}
})
读写文件写一个拷贝实例
letfs=require("fs");
//同步拷贝
functioncopySync(source,target){
//同步读取
letresult=fs.readFileSync(source,'utf8');
//同步写入
fs.writeFileSync(target,result);
}
copySync("./age.txt",'./1.txt');
//异步拷贝
functioncopy(sourse,target,callback){
//异步读取
fs.readFile(sourse,'utf8',function(err,data){
if(err){
returncallback(err)
}else{
//异步写入
fs.writeFile(target,data,callback)
}
});
};
copy('./name.txt','./ss.txt',function(err){
if(err)returnconsole.log(err);
console.log('拷贝成功')
})
判断文件存不存在
-fs.existsSync('文件的路径')
stat方法
fs.stat('文件路径',function(err,stat){
stat.isDirectory看是不是文件夹
stat.isFile看是不是文件
})
删除文件夹
-fs.rmdir('文件夹路径',function(){})
删除文件
-fs.unlink('文件路径',function(){})
//判断文件存不存在
if(fs.existsSync('./b')){
fs.stat('./b',function(err,stat){
//stat中的time是用来做服务器缓存
//stat.isDirectory看是不是文件夹stat.isFile看是不是文件
if(stat.isDirectory()){
//删除文件夹
fs.rmdir('./b',function(){})
}else{
//删除文件
fs.unlink('./b',function(){});
}
})
}
利用递归写一个文件夹依次创建
functionmd(url){
letpaths=url.split('/');//将a/b/c拆分成数组['a','b','c']
letindex=0;
functionmake(path){
if(index===paths.length+1){//如果到终点,停止递归
returnfalse;
}
if(!fs.existsSync(path)){//不存在
//创建文件夹
fs.mkdir(path,function(){
make(paths.slice(0,++index).join('/'))
})
}else{//存在
make(paths.slice(0,++index).join('/'))
}
}
make(paths[index++])//先取出第一个
}
md('a/b/c/d');
以上这篇基于node.js的fs核心模块读写文件操作(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。