鍍金池/ 教程/ HTML/ Node.js文件系統(tǒng)
Node.js快速入門
Node.js事件發(fā)射器
Node.js包(JXcore)
Node.js事件循環(huán)
Node.js文件系統(tǒng)
Node.js npm
Node.js安裝和入門
Node.js工具模塊
Node.js回調(diào)概念
Node.js流
Node.js入門實(shí)例程序
Node.js教程
Node.js規(guī)范化應(yīng)用
Node.js REPL終端
Node.js緩沖器
Node.js RESTful API
Node.js全局對(duì)象
Linux安裝Node.js(源碼編譯安裝)
Node.js Web模塊
Node.js Express框架

Node.js文件系統(tǒng)

Node實(shí)現(xiàn)文件I/O使用標(biāo)準(zhǔn)的POSIX函數(shù)的簡(jiǎn)單包裝。Node文件系統(tǒng)(FS)模塊可以使用以下語(yǔ)法輸入:

var fs = require("fs")

同步和異步

在fs模塊的每一個(gè)方法都有同步和異步形式。異步方法需要最后一個(gè)參數(shù)為完成回調(diào)函數(shù)和回調(diào)函數(shù)的第一個(gè)參數(shù)是錯(cuò)誤的。它優(yōu)選使用異步方法來(lái)代替同步方法,前者從來(lái)不阻止程序的執(zhí)行,作為第二使用。

示例

創(chuàng)建一個(gè)名為input.txt的文件有以下內(nèi)容的文本

Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

讓我們創(chuàng)建一個(gè)名為具有以下代碼main.js一個(gè)js文件。

var fs = require("fs");

// Asynchronous read
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("Asynchronous read: " + data.toString());
});

// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());

console.log("Program Ended");

現(xiàn)在運(yùn)行main.js看到的結(jié)果:

$ node main.js

驗(yàn)證輸出

Synchronous read: Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

Program Ended
Asynchronous read: Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

以下部分將提供有關(guān)主要文件I/ O方法很好的例子。

打開(kāi)一個(gè)文件

語(yǔ)法

以下是在異步模式下打開(kāi)文件的方法的語(yǔ)法:

fs.open(path, flags[, mode], callback)

參數(shù)

下面是使用的參數(shù)的說(shuō)明:

  • path - 這是文件名,包括路徑字符串。

  • flags - 標(biāo)志告知要打開(kāi)的文件的行為。所有可能的值已經(jīng)提及以下。

  • mode - 這將設(shè)置文件模式(許可和粘性位),但前提是在創(chuàng)建該文件。它默認(rèn)為0666,讀取和寫入。

  • callback - 這是回調(diào)函數(shù)得到兩個(gè)參數(shù)(err, fd)。

Flags

標(biāo)志進(jìn)行讀/寫操作是:

Flag 描述
r 打開(kāi)文件進(jìn)行讀取。如果該文件不存在發(fā)生異常。
r+ 打開(kāi)文件進(jìn)行讀取和寫入。如果該文件不存在發(fā)生異常。
rs 打開(kāi)文件,用于讀取在同步方式。
rs+ 打開(kāi)文件進(jìn)行讀取和寫入,告訴OS同步地打開(kāi)它。對(duì)于'rs'有關(guān)使用此慎用見(jiàn)注解。
w 打開(kāi)文件進(jìn)行寫入。該文件被創(chuàng)建(如果它不存在)或截?cái)啵ㄈ绻嬖冢?/td>
wx 類似'w',如果路徑存在則失敗。
w+ 打開(kāi)文件進(jìn)行讀取和寫入。該文件被創(chuàng)建(如果它不存在)或截?cái)啵ㄈ绻嬖冢?/td>
wx+ 類似“w+”,但如果路徑存在則失敗。
a 打開(kāi)文件進(jìn)行追加。如果它不存在,則創(chuàng)建該文件。
ax 類似“a”,但如果路徑存在則失敗。
a+ 打開(kāi)文件進(jìn)行讀取和附加。如果它不存在,則創(chuàng)建該文件。
ax+ 類似'a+',但如果路徑存在則失敗。

示例

讓我們創(chuàng)建一個(gè)名為main.js一個(gè)js文件具有下面的代碼,用于打開(kāi)一個(gè)文件input.txt的讀寫。

var fs = require("fs");

// Asynchronous - Opening File
console.log("Going to open file!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("File opened successfully!");     
});

現(xiàn)在運(yùn)行main.js看到的結(jié)果:

$ node main.js

驗(yàn)證輸出

Going to open file!
File opened successfully!

獲取文件信息

語(yǔ)法

下面是獲取一個(gè)文件有關(guān)的信息的方法的語(yǔ)法:

fs.stat(path, callback)

語(yǔ)法

下面是使用的參數(shù)的說(shuō)明:

  • path - 這是有文件名,包括路徑字符串。

  • callback - 這是回調(diào)函數(shù)得到兩個(gè)參數(shù)(err, stats) ,其中統(tǒng)計(jì)數(shù)據(jù)是這是印在下面的例子中的fs.Stats類型的對(duì)象。

除了這些在下面的例子中打印的重要屬性, 還有可以用于檢查文件類型的fs.Stats類可用的有用的方法。這些方法列于下表中。

方法 描述
stats.isFile() 返回true,如果文件類型是一個(gè)簡(jiǎn)單的文件
stats.isDirectory() 返回true,如果文件類型是目錄
stats.isBlockDevice() 返回true,如果文件類型是塊設(shè)備
stats.isCharacterDevice() 返回true,如果文件類型是字符設(shè)備
stats.isSymbolicLink() 返回true,如果文件類型是符號(hào)連接
stats.isFIFO() 返回true,如果文件類型是FIFO
stats.isSocket() 返回true,如果文件類型是套接字

示例

讓我們創(chuàng)建一個(gè)名為main.js的js文件具有下面的代碼:

var fs = require("fs");

console.log("Going to get file info!");
fs.stat('input.txt', function (err, stats) {
   if (上一篇:Linux安裝Node.js(源碼編譯安裝)下一篇:Node.js事件循環(huán)