Node.js中的fs模塊與文件系統操做相關,主要用於實現文件系統的操做。fs模塊中提供了大量與文件系統相關的操做方法,這些方法分爲同步方法和異步方法,開發人員能夠根據實際須要進行選擇,從而對文件系統進行操做。javascript
1、fs模塊的同步方法和異步方法java
fs模塊中提供了不少與文件操做相關的方法,例如目錄建立,文件建立,文件內容的寫入與刪除等操做。這些與文件操做相關的方法在對文件系統進行操做時大多都有同步與異步這兩種方式。 在這些方法中以Sync爲後綴的方法都是同步方法,同步方法在執行時須要當即返回操做結果,一個同步方法在操做結束以前不能夠執行以後的方法。不以Sync做爲後綴的方法都是異步的操做方法,異步方法的特色是不會阻塞程序的執行,異步方法的執行結果是做爲回調函數的參數進行返回的。在使用異步方法進行文件操做的時候,並不能保證方法執行結果返回的順序,由於每個異步方法進行文件操做時須要的時間長短是不徹底相同的,時間較短的操做方法會先返回操做結果,耗時長的異步方法後返回結果。緩存
2、對文件的讀寫操做app
使用異步的方法讀取文件內容。
(2)建立readFileSync.txt文本文件做爲同步方法讀取內容的文件:異步
使用同步的方法讀取文件內容。
(3)建立app.js:函數
var fs = require("fs"); //加載fs模塊 /* *使用異步的方式讀取文件內容 */ fs.readFile('./readFile.txt', function(err, data){ //若是讀取文件過程當中發生錯誤則將錯誤信息輸出 if(err){ console.log(err); }else{ console.log(data.toString()); //使用toString()方法將讀取到的內容轉換成字符串並輸出 } }); /* *使用同步的方式讀取文件內容 */ try{ var content = fs.readFileSync('./readFileSync.txt'); console.log(content.toString()); //使用toString()方法將讀取到的內容轉換成字符串並輸出 }catch(e){ console.log('讀取文件內容時發生錯誤:' + e); }
程序運行截圖:ui
異步讀取文件內容的readFile()方法能夠接收三個參數:編碼
readFile(filename, [options], callback);
options選項 | 描述 |
---|---|
‘r’ | 讀取文件。 |
‘r+’ | 讀取並寫入文件。 |
‘rs’ | 以同步方式讀取文件而且忽略本地文件系統緩存。 |
‘w’ | 寫入文件,若是文件不存在就建立文件。 |
‘wx’ | 以排他的方式寫入文件。 |
‘w+’ | 讀取並寫入文件。 |
‘wx+’ | 讀取並寫入文件,是以排他的方式打開文件。 |
‘a’ | 追加寫入文件,若是文件不存在就建立文件。 |
‘ax’ | 追加並寫入文件,以排他的方式打開文件。 |
‘a+’ | 讀取並追加文件,若是文件不存在就建立文件。 |
function(err, data){ //回調函數體 }
var fs = require("fs"); /* *以異步的方式向文件中寫入內容 */ var string = "經過異步方式寫入文件的內容"; fs.writeFile('./writeFile.txt', string, function(err){ if(err){ console.log('向文件中寫入內容時發生錯誤:' + err); }else{ console.log('向文件中寫入內容成功。'); } });
程序運行截圖:code
fs.writeFile(filename, data, [options], callback);
writeFile()方法中能夠接受如下四個參數:對象
flag選項 | 說明 |
---|---|
‘r’ | 讀取文件。 |
‘r+’ | 讀取並寫入文件。 |
‘rs’ | 以同步方式讀取文件而且忽略本地文件系統緩存。 |
‘w’ | 寫入文件,若是文件不存在就建立文件。 |
‘wx’ | 以排他的方式寫入文件。 |
‘w+’ | 讀取並寫入文件。 |
‘wx+’ | 讀取並寫入文件,是以排他的方式打開文件。 |
‘a’ | 追加寫入文件,若是文件不存在就建立文件。 |
‘ax’ | 追加並寫入文件,以排他的方式打開文件。 |
‘a+’ | 讀取並追加文件,若是文件不存在就建立文件。 |
mode屬性能夠用於指定該文件被打開時的讀寫權限,默認值爲066(可讀可寫)。該屬性值是用一個3位數字表示文件或目錄全部者、所屬組以及其餘人的讀寫權限。1表示可執行權限,2表示可寫權限,4表示可讀權限。 encoding屬性能夠用於指定以何種字符編碼方式將內容寫入到文件中。默認的編碼方式是「utf8」,也能夠改爲「base64」、「ascii」或者其餘的字符編碼方式。