首頁 >web前端 >js教程 >基於node.js的fs核心模組完成檔案的讀寫操作實例詳解

基於node.js的fs核心模組完成檔案的讀寫操作實例詳解

巴扎黑
巴扎黑原創
2017-09-11 09:47:361593瀏覽

下面小編就為大家帶來一篇基於node.js的fs核心模組讀寫檔案操作(實例講解)。小編覺得蠻不錯的,現在就想給大家,也給大家做個參考。一起跟著小編過來看看吧

node.js 裡fs模組

常用的功能

實作檔案的讀寫目錄的操作

- 同步與非同步共存,有非同步不用同步

- fs.readFile 都無法讀取比執行記憶體大的文件,如果檔案偏大也不會使用readFile方法

- 檔案大分流讀取,stream

- 引入fs模組

##- let fs =require('fs')

同步讀取檔案

#-fs.readFileSync('路徑', utf8);

let result=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);
}
})

讀寫一個拷貝實例


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是用来做服务器缓存
//stat.isDirectory看是不是文件夹 stat.isFile看是不是文件
if(stat.isDirectory()){
//删除文件夹
fs.rmdir('./b',function(){})
}else{
//删除文件
fs.unlink('./b',function(){});
}
})
}

利用遞歸寫一個資料夾依序建立


function md(url) {
  let paths=url.split('/'); //将a/b/c拆分成数组['a','b','c']
  let index=0;
  function make(path){
    if(index===paths.length+1){ // 如果到终点,停止递归
      return false;
    }
    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核心模組完成檔案的讀寫操作實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn