基于node.js的fs核心模塊讀寫(xiě)文件操作(實(shí)例講解)
node.js 里fs模塊
常用的功能
實(shí)現(xiàn)文件的讀寫(xiě) 目錄的操作
- 同步和異步共存 ,有異步不用同步
- 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)
}
})
同步寫(xiě)入文件
- fs.writeFileSync("路徑",寫(xiě)入的數(shù)據(jù))
fs.writeFileSync("./1.txt",JSON.stringify({name:1}))
異步寫(xiě)入文件
- fs.writeFile('路徑',寫(xiě)入的數(shù)據(jù),callback)
fs.writeFile('./1.txt','aaaaa',function (err) {
if(err){
console.log(err);
}
})
讀寫(xiě)文件寫(xiě)一個(gè)拷貝實(shí)例
let fs=require("fs"); //同步拷貝 function copySync(source,target){ //同步讀取 let result=fs.readFileSync(source,'utf8'); //同步寫(xiě)入 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{ //異步寫(xiě)入 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(){}); } }) }
利用遞歸寫(xiě)一個(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');
以上這篇基于node.js的fs核心模塊讀寫(xiě)文件操作(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Node.js Streams文件讀寫(xiě)操作詳解
- node.js基于fs模塊對(duì)系統(tǒng)文件及目錄進(jìn)行讀寫(xiě)操作的方法詳解
- Node.js實(shí)戰(zhàn)之Buffer和Stream模塊系統(tǒng)深入剖析詳解
- Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法
- Node.js數(shù)據(jù)流Stream之Readable流和Writable流用法
- node.js中stream流中可讀流和可寫(xiě)流的實(shí)現(xiàn)與使用方法實(shí)例分析
- node.js使用stream模塊實(shí)現(xiàn)自定義流示例
- 深入淺出了解Node.js Streams
- Node.js中你不可不精的Stream(流)
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法
- Node.js從字符串生成文件流的實(shí)現(xiàn)方法
- node.js同步/異步文件讀寫(xiě)-fs,Stream文件流操作實(shí)例詳解
相關(guān)文章
Nodejs使用mysql2操作數(shù)據(jù)庫(kù)的方法完整講解
MySQL2是一個(gè)基于Node.js的MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,它是MySQL官方推薦的驅(qū)動(dòng)之一,下面這篇文章主要給大家介紹了關(guān)于Nodejs使用mysql2操作數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2024-01-01nodejs入門(mén)教程三:調(diào)用內(nèi)部和外部方法示例
這篇文章主要介紹了nodejs入門(mén)教程之調(diào)用內(nèi)部和外部方法,結(jié)合實(shí)例形式分析了nodejs內(nèi)部與外部方法的定義與調(diào)用相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04Node.js爬蟲(chóng)如何獲取天氣和每日問(wèn)候詳解
這篇文章主要給大家介紹了關(guān)于Node.js爬蟲(chóng)如何獲取天氣和每日問(wèn)候的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Node.js爬蟲(chóng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08nodejs事件的監(jiān)聽(tīng)與觸發(fā)的理解分析
這篇文章主要介紹了nodejs事件的監(jiān)聽(tīng)與觸發(fā)的理解分析,以實(shí)例形式對(duì)比分析了nodejs與jQuery關(guān)于事件監(jiān)聽(tīng)的實(shí)用技巧,有助于加深對(duì)nodejs的理解,需要的朋友可以參考下2015-02-02pm2工具在Node.js開(kāi)發(fā)部署中的重要作用詳解
這篇文章主要為大家介紹了pm2工具在Node.js開(kāi)發(fā)部署中的重要作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12NodeJS 創(chuàng)建目錄和文件的方法實(shí)例分析
這篇文章主要介紹了NodeJS 創(chuàng)建目錄和文件的方法,涉及node.js中fs模塊mkdir、writeFile及目錄判斷existsSync等方法的功能與相關(guān)使用技巧,需要的朋友可以參考下2023-04-04node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式
這篇文章主要介紹了node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09利用Node.js+Koa框架實(shí)現(xiàn)前后端交互的方法
這篇文章主要給大家介紹了利用Node.js+Koa框架實(shí)現(xiàn)前后端交互的方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02Node.js API詳解之 string_decoder用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 string_decoder用法,結(jié)合實(shí)例形式分析了Node.js API中string_decoder的功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04