node fs模塊

Node中的文件操作

fs模塊是node非常重要的模塊,能體現(xiàn)出node的優(yōu)勢(shì)。

因?yàn)槌鲇诎踩呗?,如果javasript能隨意操作文件,那你打開任何一個(gè)網(wǎng)頁(yè),都會(huì)有信息泄露,和中毒等風(fēng)險(xiǎn)。因此作為使用javascript語(yǔ)言的后臺(tái)nodejs可以為前端工程師提供文件操作方式。

當(dāng)今異步操作橫行編程界,node也是以異步編程為大家所稱道。在node的文件操作中也是以異步為主,同步為輔(雖然存在感低,但也是存在的)。

異步方法:readFile(......),writeFile(......),appendFile(......),open(......) ;
同步方法:在異步基礎(chǔ)上加sync如readFileSync(..)。

如同Java中的文件操作一樣,在Node中,也提供了針對(duì)文件的操作。在Node中,文件操作默認(rèn)使用的是UTF-8編碼,這意味著我們無(wú)須再去處理中文亂碼的問(wèn)題。
針對(duì)文件操作,Node提供了一個(gè)fs模塊來(lái)支持我們操作文件,fs模塊是對(duì)標(biāo)準(zhǔn)POSIX函數(shù)的簡(jiǎn)單封裝。在使用這個(gè)模塊時(shí),我們只需要聲明引用即可。

var fs= require("fs");

然后我們就可以調(diào)用fs模塊中的方法進(jìn)行文件操作。

writeFile:異步向文件中寫入數(shù)據(jù),如果文件不存在,則會(huì)自動(dòng)創(chuàng)建文件;如果文件存在,則會(huì)把文件替換掉。如fs.writeFile(文件名,數(shù)據(jù),回調(diào)函數(shù)(err)),其中數(shù)據(jù)參數(shù)可以是String或者Buffer類型,編碼格式是可選的,默認(rèn)是UTF-8,回調(diào)函數(shù)只有一個(gè)參數(shù)err。

appenFile:向文件中追加內(nèi)容。如果不存在該文件,則會(huì)自動(dòng)創(chuàng)建新文件;如果已經(jīng)存在,那就直接在文件尾部追加數(shù)據(jù)。如fs.appendFile(文件名,數(shù)據(jù),編碼,回調(diào)函數(shù)(err)),編碼格式默認(rèn)為UTF-8。

exists:判斷文件是否存在。如fs.exists(文件,回調(diào)函數(shù)(exists)),該方法的回調(diào)函數(shù)只有一個(gè)參數(shù),是一個(gè)boolean類型,通過(guò)該值來(lái)判斷是否存在。

rename:用來(lái)重命名文件,也可以復(fù)制文件到指定的目錄下。如果是重命名文件,則是fs.rename(舊文件名,新文件名,回調(diào)函數(shù)(err));如果是復(fù)制文件,則是fs.rename(舊文件的路徑,新路徑,回調(diào)函數(shù)(err)),注:復(fù)制文件時(shí),需要在路徑后面加上文件名,否則會(huì)出現(xiàn)錯(cuò)誤。

readFile:見(jiàn)名之意,這個(gè)方法是用來(lái)讀取文件的,把文件讀取到緩沖區(qū)中,該方法是非阻塞的。fs.readFile(文件名,回調(diào)函數(shù)(err,data))

readFileSync:這個(gè)方法也是用來(lái)讀取文件的,把文件讀取到緩沖區(qū)中,但是這個(gè)方法是線程阻塞的。fs.readFileSync(文件名)。

read:不斷地將文件中的一小塊內(nèi)容讀入緩存區(qū),最后從該緩存區(qū)中讀取文件內(nèi)容。fs.read(fd, buffer, offset, length, position, callback)

unlink:刪除文件,不是用來(lái)刪除文件夾。fs.unlink(文件,回調(diào)函數(shù)(err))。

mkdir:創(chuàng)建目錄。fs.mkdir(路徑,權(quán)限,回調(diào)函數(shù)(err)):路徑是新創(chuàng)建的目錄;權(quán)限是可選參數(shù),并且只在Linux目錄下有效,默認(rèn)是0777,即所有人都擁有讀寫執(zhí)行的權(quán)限;回調(diào)函數(shù)則是在錯(cuò)誤發(fā)生時(shí),錯(cuò)誤信息會(huì)傳遞給回調(diào)函數(shù)的err參數(shù)。

rmdir:刪除目錄,fs.rmdir(路徑,回調(diào)函數(shù)(err)),刪除目錄時(shí),需要確定被刪除的目錄是空目錄,否則無(wú)法刪除。

readdir:讀取指定目錄下所有的文件,fs.readdir(目錄,回調(diào)函數(shù)(err,files)):回調(diào)函數(shù)中的files是一個(gè)數(shù)組,這個(gè)數(shù)組是目錄中所包含的文件名稱。

在Node中,還有很多的文件操作方法,詳情可借鑒http://www.runoob.com/nodejs/nodejs-fs.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • fs文件讀取模塊 Node.js內(nèi)置的fs模塊就是文件系統(tǒng)模塊,負(fù)責(zé)讀寫文件。 和所有其它JavaScript模塊...
    _panda閱讀 445評(píng)論 0 1
  • Node.js 常用工具 util 是一個(gè)Node.js 核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)核心JavaScr...
    FTOLsXD閱讀 615評(píng)論 0 2
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宮若石閱讀 1,245評(píng)論 0 1
  • Node.js是目前非常火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,737評(píng)論 2 41
  • 這真的是一篇跨年的文章了,好長(zhǎng),一邊看,一邊跟著敲代碼驗(yàn)證,那么,問(wèn)題來(lái)了,你和誰(shuí)一起跨年了(機(jī)智臉)? 在Nod...
    范小飯_閱讀 1,448評(píng)論 3 8

友情鏈接更多精彩內(nèi)容