這篇文章將為大家詳細(xì)講解有關(guān)node.js中fs核心模塊讀寫文件操作的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)濮陽(yáng),十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
node.js 里fs模塊
常用的功能
實(shí)現(xiàn)文件的讀寫 目錄的操作
- 同步和異步共存 ,有異步不用同步
- fs.readFile 都不能讀取比運(yùn)行內(nèi)存大的文件,如果文件偏大也不會(huì)使用readFile方法
- 文件大分流讀取,stream
- 引入fs模塊
- let fs=require('fs')
同步讀取文件
-fs.readFileSync('路徑',utf8);
let result=fs.readFileSync('./1.txt','utf8');
異步讀取文件,用參數(shù)err捕獲錯(cuò)誤
- fs.readFile('路徑','utf8',function(){})
fs.readFile('./name.txt','utf8',function(err,data){
if(err){
console.log(err)
}else{
console.log(data)
}
})
同步寫入文件
- fs.writeFileSync("路徑",寫入的數(shù)據(jù))
fs.writeFileSync("./1.txt",JSON.stringify({name:1}))
異步寫入文件
- fs.writeFile('路徑',寫入的數(shù)據(jù),callback)
fs.writeFile('./1.txt','aaaaa',function (err) {
if(err){
console.log(err);
}
})
讀寫文件寫一個(gè)拷貝實(shí)例
let fs=require("fs"); //同步拷貝 function copySync(source,target){ //同步讀取 let result=fs.readFileSync(source,'utf8'); //同步寫入 fs.writeFileSync(target,result); } copySync("./age.txt",'./1.txt');
//異步拷貝
function copy(sourse,target,callback){ //異步讀取 fs.readFile(sourse,'utf8',function(err,data){ if(err){ return callback(err) }else{ //異步寫入 fs.writeFile(target,data,callback) } }); }; copy('./name.txt','./ss.txt',function(err){ if(err) return console.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是用來(lái)做服務(wù)器緩存 //stat.isDirectory看是不是文件夾 stat.isFile看是不是文件 if(stat.isDirectory()){ //刪除文件夾 fs.rmdir('./b',function(){}) }else{ //刪除文件 fs.unlink('./b',function(){}); } }) }
利用遞歸寫一個(gè)文件夾依次創(chuàng)建
function md(url) { let paths=url.split('/'); //將a/b/c拆分成數(shù)組['a','b','c'] let index=0; function make(path){ if(index===paths.length+1){ // 如果到終點(diǎn),停止遞歸 return false; } if(!fs.existsSync(path)){ //不存在 //創(chuàng)建文件夾 fs.mkdir(path,function () { make(paths.slice(0,++index).join('/')) }) }else{ //存在 make(paths.slice(0,++index).join('/')) } } make(paths[index++]) //先取出第一個(gè) } md('a/b/c/d');
關(guān)于“node.js中fs核心模塊讀寫文件操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。