您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Node.js文件系統(tǒng)如何使用,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
Node.js 文件系統(tǒng)
Node.js文件系統(tǒng)被封裝在fs模塊中,它提供了文件的讀取、寫(xiě)入、更名、刪除、遍歷目錄、鏈接等POSIX文件系統(tǒng)操作。
與其他模塊不同的是,fs模塊中所有的操作都提供了異步的和同步的兩個(gè)版本,例如讀取文件內(nèi)容的函數(shù)有異步的fs.readFile()和同步的fs.readFileSync()。我們以幾個(gè)函數(shù)為代表,介紹fs常用的功能,并列出fs所有函數(shù)的定義和功能。
。。。
fs.readFile
Node.js讀取文件函數(shù)語(yǔ)法如下:
-fs.readFile(filename,[encoding],[callback(err,data)])
-filename(必選),表示要讀取的文件名。
-encoding(可選),表示文件的字符編碼。
-callback 是回調(diào)函數(shù),用于接收文件的內(nèi)容。
如果不指定encoding,則callback就是第二個(gè)參數(shù)。回調(diào)函數(shù)提供兩個(gè)參數(shù)err和data,err表示有沒(méi)有錯(cuò)誤發(fā)生,data是文件內(nèi)容。如果指定了encoding,data是一個(gè)解析后的字符串,否則data將會(huì)是以Buffer形式表示的二進(jìn)制數(shù)據(jù)。
。。。
fs.readFileSync
fs.readFileSync(filename, [encoding])是fs.readFile同步的版本。它接受和 fs.readFile 相同的參數(shù),而讀取到的文件內(nèi)容會(huì)以函數(shù)返回值的形式返回。如果有錯(cuò) 誤發(fā)生,fs將會(huì)拋出異常,你需要使用try和catch捕捉并處理異常。
注意:與同步I/O函數(shù)不同,Node.js中異步函數(shù)大多沒(méi)有返回值。http://www.iis7.com/a/lm/yczmljgj/
。。。
fs.open
fs.open(path, flags, [mode], [callback(err, fd)])是POSIX open函數(shù)的封裝,類似于C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的fopen函數(shù)。它接受兩個(gè)必選參數(shù),path為文件的路徑, flags 可以是以下值:
r :以讀取模式打開(kāi)文件。
r+ :以讀寫(xiě)模式打開(kāi)文件。
w :以寫(xiě)入模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
w+ :以讀寫(xiě)模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
a :以追加模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
a+ :以讀取追加模式打開(kāi)文件,如果文件不存在則創(chuàng)建
。。。
fs.read
fs.read語(yǔ)法格式如下:
fs.read(fd, buffer, offset, length, position, [callback(err, bytesRead, buffer)])
參數(shù)說(shuō)明:
-fd: 讀取數(shù)據(jù)并寫(xiě)入buffer指向的緩沖區(qū)對(duì)象。
-offset: 是buffer的寫(xiě)入偏移量。
-length: 是要從文件中讀取的字節(jié)數(shù)。
-position: 是文件讀取的起始位置,如果position的值為null,則會(huì)從當(dāng)前文件指針的位置讀取。
-callback:回調(diào)函數(shù)傳遞bytesRead和buffer,分別表示讀取的字節(jié)數(shù)和緩沖區(qū)對(duì)象。
以上就是Node.js文件系統(tǒng)如何使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。