Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法
fs模塊.js:
/* 1. fs.stat 檢測(cè)是文件還是目錄(目錄 文件是否存在) 2. fs.mkdir 創(chuàng)建目錄 (創(chuàng)建之前先判斷是否存在) 3. fs.writeFile 寫(xiě)入文件(文件不存在就創(chuàng)建,但不能創(chuàng)建目錄) 4. fs.appendFile 寫(xiě)入追加文件 5.fs.readFile 讀取文件 6.fs.readdir 讀取目錄 7.fs.rename 重命名 8. fs.rmdir 刪除目錄 9. fs.unlink 刪除文件 */ var fs=require('fs'); //fs是node.js的核心模塊,不用下載安裝,可以直接引入 //1. fs.stat 檢測(cè)是文件還是目錄 fs.statSync()同步獲取stats對(duì)象,通過(guò)返回值接收。 fs.stat('html',function(error,stats){ if(error){ console.log(error); return false; } console.log('文件:'+stats.isFile()); console.log('目錄:'+stats.isDirectory()); }) //2. fs.mkdir 創(chuàng)建目錄 fs.mkdir('css',function(error){ if(error){ console.log(error); return false; } console.log('創(chuàng)建目錄成功'); }) //3. fs.writeFile 寫(xiě)入文件(會(huì)覆蓋之前的內(nèi)容)(文件不存在就創(chuàng)建) utf8參數(shù)可以省略 fs.writeFile('123.txt','你好nodejs 覆蓋','utf8',function(error){ if(error){ console.log(error); return false; } console.log('寫(xiě)入成功'); }) //4. fs.appendFile 追加文件 fs.appendFile('123.txt','這是寫(xiě)入的內(nèi)容\n',function(error){ if(error){ console.log(error); return false; } console.log('寫(xiě)入成功'); }) //5.fs.readFile 讀取文件 fs.readFile('123.txt',function(error,data){ if(error){ console.log(error); return false; } //console.log(data); //data是讀取的十六進(jìn)制的數(shù)據(jù)。 也可以在參數(shù)中加入編碼格式"utf8"來(lái)解決十六進(jìn)制的問(wèn)題; console.log(data.toString()); //讀取出所有行的信息 }) //6.fs.readdir 讀取目錄下第一級(jí)內(nèi)容 把目錄下面的文件和文件夾都獲取到。 fs.readdir('html',function(error,data){ if(error){ console.log(error); return false; } console.log(data); //data是數(shù)組類(lèi)型,包含文件夾以及文件的名字(只有第一級(jí)目錄內(nèi)容)。拿到一個(gè)文件夾下面的所有目錄 }) //7.fs.rename 重命名 1.改名 2.剪切文件(移動(dòng)) fs.rename('html/index.html','html/news.html',function(error){ if(error){ console.log(error); return false; } console.log('修改名字成功'); }) //8. fs.rmdir 刪除目錄 rmdir 這個(gè)方法只能刪除目錄,不能刪除文件 fs.rmdir('abc目錄',function(error){ if(error){ console.log(error); return false; } console.log('刪除目錄成功'); }) //9. fs.unlink刪除文件 fs.unlink('index.txt',function(error){ if(error){ console.log(error); return false; } console.log('刪除文件成功'); }) //10. fs.createReadStream 從文件流中讀取數(shù)據(jù),讀取的文件比較大時(shí)建議用流的方式讀取,文件比較大會(huì)多次讀取。 var fileReadStream = fs.createReadStream( 'data1.json'); var str = ''; fileReadStream.on('data', (data) => { console.log("接收到" + data.length); //文件比較大時(shí),會(huì)多次讀取,多次執(zhí)行該回調(diào)函數(shù) str += data; }) fileReadStream.on('end', () => { console.log(" --- 結(jié)束 ---"); console.log( str ); }) fileReadStream.on('error', (error) => { console.log(error) }) //11. fs.createWriteStream 寫(xiě)入文件流 var fs = require("fs"); var data = "我是從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù),我要保存起來(lái)"; var writerStream = fs.createWriteStream('output.txt'); writerStream.write( data , 'UTF8' ); writerStream.end(); //標(biāo)記文件末尾 結(jié)束寫(xiě)入流,釋放資源 writerStream.on( 'finish', function() { console.log("寫(xiě)入完成。"); }); writerStream.on( 'error', function(error){ console.log(error.stack); }); console.log("程序執(zhí)行完畢"); //12. pipe 管道流 var fs = require("fs"); var readerStream = fs.createReadStream( 'input.txt'); var writerStream = fs.createWriteStream( 'output.txt'); readerStream.pipe( writerStream ); console.log("程序執(zhí)行完畢"); //13. fs.access 判斷目錄、文件是否存在(讀寫(xiě)權(quán)限) var fs = require('fs'); fs.access('package.json',(err)=>{ console.log(err ? '目錄/文件不存在': '文件存在,可以進(jìn)行讀寫(xiě)'); });
總結(jié)
以上所述是小編給大家介紹的Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- Python讀取和寫(xiě)入txt、Excel文件和JSON文件的方法
- C++利用jsoncpp庫(kù)實(shí)現(xiàn)寫(xiě)入和讀取json文件
- C#實(shí)現(xiàn)讀取寫(xiě)入Json文件
- Python如何讀取、寫(xiě)入JSON數(shù)據(jù)
- python3 循環(huán)讀取excel文件并寫(xiě)入json操作
- Node.js readline 逐行讀取、寫(xiě)入文件內(nèi)容的示例
- Python讀取Json字典寫(xiě)入Excel表格的方法
- Javascript寫(xiě)入txt和讀取txt文件示例
- JavaScript?讀取及寫(xiě)入本地文件的操作方法
相關(guān)文章
Node.js v8.0.0正式發(fā)布!看看帶來(lái)了哪些主要新特性
Node.js v8.0.0 已正式發(fā)布。v8.0.0 是下一個(gè)主要的版本,帶來(lái)了一系列重大的變化和新功能,內(nèi)容十分多!下面這篇文章主要帶著大家一起看看Node.js v8.0.0帶來(lái)了哪些主要新特性,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-06-06node微信開(kāi)發(fā)之獲取access_token+自定義菜單
這篇文章主要介紹了node微信開(kāi)發(fā)之獲取access_token+自定義菜單,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03使用nodejs?+?koa?+?typescript?集成和自動(dòng)重啟的問(wèn)題
這篇文章主要介紹了nodejs?+?koa?+?typescript?集成和自動(dòng)重啟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序,本系列文章將一步一步創(chuàng)建一個(gè)完整的nodejs服務(wù)器,需要的朋友可以參考下2014-12-12Node.js 中的流Stream模塊簡(jiǎn)介及如何使用流進(jìn)行數(shù)據(jù)處理
Node.js中的流(Stream)模塊用于高效處理流式數(shù)據(jù),包括可讀流、可寫(xiě)流、雙邊流和轉(zhuǎn)換流等,通過(guò)`fs.createReadStream`和`.pipe`方法可以方便地讀取文件并寫(xiě)入控制臺(tái)或處理網(wǎng)絡(luò)請(qǐng)求,在實(shí)際開(kāi)發(fā)中,需要注意錯(cuò)誤處理、資源管理和性能優(yōu)化等問(wèn)題2025-03-03使用Node.js搭建Vue項(xiàng)目的詳細(xì)步驟
Vue.js 是一款流行的 JavaScript 框架,而 Node.js 提供了一個(gè)強(qiáng)大的運(yùn)行環(huán)境,兩者的結(jié)合使得開(kāi)發(fā)者可以輕松構(gòu)建現(xiàn)代化的前端項(xiàng)目,本文將介紹如何使用 Node.js 搭建一個(gè)基本的 Vue 項(xiàng)目,需要的朋友可以參考下2023-12-12node.js的http.createServer過(guò)程深入解析
這篇文章主要給大家介紹了關(guān)于node.js的http.createServer過(guò)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06零基礎(chǔ)之Node.js搭建API服務(wù)器的詳解
今天小編就為大家分享一篇關(guān)于零基礎(chǔ)之Node.js搭建API服務(wù)器的詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03