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

2022-02-26 10:25 更新

Node.js 提供一組類似 UNIX(POSIX)標(biāo)準(zhǔn)的文件操作API。 Node 導(dǎo)入文件系統(tǒng)模塊(fs)語(yǔ)法如下所示:

var fs = require("fs")

異步和同步

Node.js 文件系統(tǒng)(fs 模塊)模塊中的方法均有異步和同步版本,例如讀取文件內(nèi)容的函數(shù)有異步的 fs.readFile() 和同步的 fs.readFileSync()。

異步的方法函數(shù)最后一個(gè)參數(shù)為回調(diào)函數(shù),回調(diào)函數(shù)的第一個(gè)參數(shù)包含了錯(cuò)誤信息(error)。

建議大家使用異步方法,比起同步,異步方法性能更高,速度更快,而且沒(méi)有阻塞。

實(shí)例

創(chuàng)建 input.txt 文件,內(nèi)容如下:

編程獅官網(wǎng)地址:hgci.cn
文件讀取實(shí)例

創(chuàng)建 file.js 文件, 代碼如下:

var fs = require("fs");

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

// 同步讀取
var data = fs.readFileSync('input.txt');
console.log("同步讀取: " + data.toString());

console.log("程序執(zhí)行完畢。");

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
同步讀取: 編程獅官網(wǎng)地址:hgci.cn
文件讀取實(shí)例
程序執(zhí)行完畢。
異步讀取: 編程獅官網(wǎng)地址:hgci.cn
文件讀取實(shí)例

接下來(lái),讓我們來(lái)具體了解下 Node.js 文件系統(tǒng)的方法。

打開(kāi)文件

語(yǔ)法

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

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

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件的路徑。
  • flags - 文件打開(kāi)的行為。具體值詳見(jiàn)下文。
  • mode - 設(shè)置文件模式(權(quán)限),文件創(chuàng)建默認(rèn)權(quán)限為 0666(可讀,可寫(xiě))。
  • callback - 回調(diào)函數(shù),帶有兩個(gè)參數(shù)如:callback(err, fd)。

flags 參數(shù)可以是以下值:

Flag描述
r以讀取模式打開(kāi)文件。如果文件不存在拋出異常。
r+以讀寫(xiě)模式打開(kāi)文件。如果文件不存在拋出異常。
rs以同步的方式讀取文件。
rs+以同步的方式讀取和寫(xiě)入文件。
w以寫(xiě)入模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
wx類似 'w',但是如果文件路徑存在,則文件寫(xiě)入失敗。
w+以讀寫(xiě)模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
wx+類似 'w+', 但是如果文件路徑存在,則文件讀寫(xiě)失敗。
a以追加模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
ax類似 'a', 但是如果文件路徑存在,則文件追加失敗。
a+以讀取追加模式打開(kāi)文件,如果文件不存在則創(chuàng)建。
ax+類似 'a+', 但是如果文件路徑存在,則文件讀取追加失敗。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,并打開(kāi) input.txt 文件進(jìn)行讀寫(xiě),代碼如下所示:

var fs = require("fs");

// 異步打開(kāi)文件
console.log("準(zhǔn)備打開(kāi)文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打開(kāi)成功!");     
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備打開(kāi)文件!
文件打開(kāi)成功!

獲取文件信息

語(yǔ)法

以下為通過(guò)異步模式獲取文件信息的語(yǔ)法格式:

fs.stat(path, callback)

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件路徑。
  • callback - 回調(diào)函數(shù),帶有兩個(gè)參數(shù)如:(err, stats), stats 是 fs.Stats 對(duì)象。

fs.stat(path)執(zhí)行后,會(huì)將stats類的實(shí)例返回給其回調(diào)函數(shù)??梢酝ㄟ^(guò)stats類中的提供方法判斷文件的相關(guān)屬性。例如判斷是否為文件:

var fs = require('fs');

fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile());         //true
})

stats類中的方法有:

方法描述
stats.isFile()如果是文件返回 true,否則返回 false。
stats.isDirectory()如果是目錄返回 true,否則返回 false。
stats.isBlockDevice()如果是塊設(shè)備返回 true,否則返回 false。
stats.isCharacterDevice()如果是字符設(shè)備返回 true,否則返回 false。
stats.isSymbolicLink()如果是軟鏈接返回 true,否則返回 false。
stats.isFIFO()如果是FIFO,返回true,否則返回 false。FIFO是UNIX中的一種特殊類型的命令管道。
stats.isSocket()如果是 Socket 返回 true,否則返回 false。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");

console.log("準(zhǔn)備打開(kāi)文件!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("讀取文件信息成功!");
   
   // 檢測(cè)文件類型
   console.log("是否為文件(isFile) ? " + stats.isFile());
   console.log("是否為目錄(isDirectory) ? " + stats.isDirectory());    
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備打開(kāi)文件!
{ dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 40333161,
  size: 61,
  blocks: 8,
  atime: Mon Sep 07 2015 17:43:55 GMT+0800 (CST),
  mtime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST),
  ctime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST) }
讀取文件信息成功!
是否為文件(isFile) ? true
是否為目錄(isDirectory) ? false

寫(xiě)入文件

語(yǔ)法

以下為異步模式下寫(xiě)入文件的語(yǔ)法格式:

fs.writeFile(file, data[, options], callback)

writeFile 直接打開(kāi)文件默認(rèn)是 w 模式,所以如果文件存在,該方法寫(xiě)入的內(nèi)容會(huì)覆蓋舊的文件內(nèi)容。

參數(shù)

參數(shù)使用說(shuō)明如下:

  • file - 文件名或文件描述符。
  • data - 要寫(xiě)入文件的數(shù)據(jù),可以是 String(字符串) 或 Buffer(緩沖) 對(duì)象。
  • options - 該參數(shù)是一個(gè)對(duì)象,包含 {encoding, mode, flag}。默認(rèn)編碼為 utf8, 模式為 0666 , flag 為 'w'
  • callback - 回調(diào)函數(shù),回調(diào)函數(shù)只包含錯(cuò)誤信息參數(shù)(err),在寫(xiě)入失敗時(shí)返回。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");

console.log("準(zhǔn)備寫(xiě)入文件");
fs.writeFile('input.txt', '我是通 過(guò)fs.writeFile 寫(xiě)入文件的內(nèi)容',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("數(shù)據(jù)寫(xiě)入成功!");
   console.log("--------我是分割線-------------")
   console.log("讀取寫(xiě)入的數(shù)據(jù)!");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("異步讀取文件數(shù)據(jù): " + data.toString());
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備寫(xiě)入文件
數(shù)據(jù)寫(xiě)入成功!
--------我是分割線-------------
讀取寫(xiě)入的數(shù)據(jù)!
異步讀取文件數(shù)據(jù): 我是通 過(guò)fs.writeFile 寫(xiě)入文件的內(nèi)容

讀取文件

語(yǔ)法

以下為異步模式下讀取文件的語(yǔ)法格式:

fs.read(fd, buffer, offset, length, position, callback)

該方法使用了文件描述符來(lái)讀取文件。

參數(shù)

參數(shù)使用說(shuō)明如下:

  • fd - 通過(guò) fs.open() 方法返回的文件描述符。
  • buffer - 數(shù)據(jù)寫(xiě)入的緩沖區(qū)。
  • offset - 緩沖區(qū)寫(xiě)入的寫(xiě)入偏移量。
  • length - 要從文件中讀取的字節(jié)數(shù)。
  • position - 文件讀取的起始位置,如果 position 的值為 null,則會(huì)從當(dāng)前文件指針的位置讀取。
  • callback - 回調(diào)函數(shù),有三個(gè)參數(shù)err, bytesRead, buffer,err 為錯(cuò)誤信息, bytesRead 表示讀取的字節(jié)數(shù),buffer 為緩沖區(qū)對(duì)象。

實(shí)例

input.txt 文件內(nèi)容為:

編程獅官網(wǎng)地址:hgci.cn

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");
var buf = new Buffer.alloc(1024);

console.log("準(zhǔn)備打開(kāi)已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打開(kāi)成功!");
   console.log("準(zhǔn)備讀取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字節(jié)被讀取");
      
      // 僅輸出讀取的字節(jié)
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備打開(kāi)已存在的文件!
文件打開(kāi)成功!
準(zhǔn)備讀取文件:
42  字節(jié)被讀取
編程獅官網(wǎng)地址:hgci.cn

關(guān)閉文件

語(yǔ)法

以下為異步模式下關(guān)閉文件的語(yǔ)法格式:

fs.close(fd, callback)

該方法使用了文件描述符來(lái)讀取文件。

參數(shù)

參數(shù)使用說(shuō)明如下:

  • fd - 通過(guò) fs.open() 方法返回的文件描述符。
  • callback - 回調(diào)函數(shù),沒(méi)有參數(shù)。

實(shí)例

input.txt 文件內(nèi)容為:

編程獅官網(wǎng)地址:hgci.cn

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");
var buf = new Buffer.alloc(1024);

console.log("準(zhǔn)備打開(kāi)文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打開(kāi)成功!");
   console.log("準(zhǔn)備讀取文件!");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }

      // 僅輸出讀取的字節(jié)
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }

      // 關(guān)閉文件
      fs.close(fd, function(err){
         if (err){
            console.log(err);
         } 
         console.log("文件關(guān)閉成功");
      });
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備打開(kāi)文件!
文件打開(kāi)成功!
準(zhǔn)備讀取文件!

編程獅官網(wǎng)地址:hgci.cn

文件關(guān)閉成功

截取文件

語(yǔ)法

以下為異步模式下截取文件的語(yǔ)法格式:

fs.ftruncate(fd, len, callback)

該方法使用了文件描述符來(lái)讀取文件。

參數(shù)

參數(shù)使用說(shuō)明如下:

  • fd - 通過(guò) fs.open() 方法返回的文件描述符。
  • len - 文件內(nèi)容截取的長(zhǎng)度。
  • callback - 回調(diào)函數(shù),沒(méi)有參數(shù)。

實(shí)例

input.txt 文件內(nèi)容為:

site:www.w3cschool.com

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");
var buf = new Buffer.alloc(1024);

console.log("準(zhǔn)備打開(kāi)文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打開(kāi)成功!");
   console.log("截取10字節(jié)內(nèi)的文件內(nèi)容,超出部分將被去除。");
   
   // 截取文件
   fs.ftruncate(fd, 10, function(err){
      if (err){
         console.log(err);
      } 
      console.log("文件截取成功。");
      console.log("讀取相同的文件"); 
      fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
         if (err){
            console.log(err);
         }

         // 僅輸出讀取的字節(jié)
         if(bytes > 0){
            console.log(buf.slice(0, bytes).toString());
         }

         // 關(guān)閉文件
         fs.close(fd, function(err){
            if (err){
               console.log(err);
            } 
            console.log("文件關(guān)閉成功!");
         });
      });
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備打開(kāi)文件!
文件打開(kāi)成功!
截取10字節(jié)內(nèi)的文件內(nèi)容,超出部分將被去除。
文件截取成功。
讀取相同的文件
site:www.r
文件關(guān)閉成功

刪除文件

語(yǔ)法

以下為刪除文件的語(yǔ)法格式:

fs.unlink(path, callback)

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件路徑。
  • callback - 回調(diào)函數(shù),沒(méi)有參數(shù)。

實(shí)例

input.txt 文件內(nèi)容為:

site:www.w3cschool.com

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");

console.log("準(zhǔn)備刪除文件!");
fs.unlink('input.txt', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件刪除成功!");
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備刪除文件!
文件刪除成功!

再去查看 input.txt 文件,發(fā)現(xiàn)已經(jīng)不存在了。

創(chuàng)建目錄

語(yǔ)法

以下為創(chuàng)建目錄的語(yǔ)法格式:

fs.mkdir(path[, options], callback)

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件路徑。
  • options 參數(shù)可以是:recursive - 是否以遞歸的方式創(chuàng)建目錄,默認(rèn)為 false。mode - 設(shè)置目錄權(quán)限,默認(rèn)為 0777。
  • callback - 回調(diào)函數(shù),沒(méi)有參數(shù)。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");
// tmp 目錄必須存在
console.log("創(chuàng)建目錄 /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目錄創(chuàng)建成功。");
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
創(chuàng)建目錄 /tmp/test/
目錄創(chuàng)建成功。

可以添加 recursive: true 參數(shù),不管創(chuàng)建的目錄 /tmp 和 /tmp/a 是否存在:

fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => {
  if (err) throw err;
});

讀取目錄

語(yǔ)法

以下為讀取目錄的語(yǔ)法格式:

fs.readdir(path, callback)

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件路徑。
  • callback - 回調(diào)函數(shù),回調(diào)函數(shù)帶有兩個(gè)參數(shù)err, files,err 為錯(cuò)誤信息,files 為 目錄下的文件數(shù)組列表。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");

console.log("查看 /tmp 目錄");
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
查看 /tmp 目錄
input.out
output.out
test
test.txt

刪除目錄

語(yǔ)法

以下為刪除目錄的語(yǔ)法格式:

fs.rmdir(path, callback)

參數(shù)

參數(shù)使用說(shuō)明如下:

  • path - 文件路徑。
  • callback - 回調(diào)函數(shù),沒(méi)有參數(shù)。

實(shí)例

接下來(lái)我們創(chuàng)建 file.js 文件,代碼如下所示:

var fs = require("fs");
// 執(zhí)行前創(chuàng)建一個(gè)空的 /tmp/test 目錄
console.log("準(zhǔn)備刪除目錄 /tmp/test");
fs.rmdir("/tmp/test",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("讀取 /tmp 目錄");
   fs.readdir("/tmp/",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach( function (file){
          console.log( file );
      });
   });
});

以上代碼執(zhí)行結(jié)果如下:

$ node file.js 
準(zhǔn)備刪除目錄 /tmp/test
讀取 /tmp 目錄
……

文件模塊方法參考手冊(cè)

以下為 Node.js 文件模塊相同的方法列表:

序號(hào)方法 & 描述
1fs.rename(oldPath, newPath, callback)
異步 rename().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
2fs.ftruncate(fd, len, callback)
異步 ftruncate().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
3fs.ftruncateSync(fd, len)
同步 ftruncate()
4fs.truncate(path, len, callback)
異步 truncate().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
5fs.truncateSync(path, len)
同步 truncate()
6fs.chown(path, uid, gid, callback)
異步 chown().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
7fs.chownSync(path, uid, gid)
同步 chown()
8fs.fchown(fd, uid, gid, callback)
異步 fchown().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
9fs.fchownSync(fd, uid, gid)
同步 fchown()
10fs.lchown(path, uid, gid, callback)
異步 lchown().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
11fs.lchownSync(path, uid, gid)
同步 lchown()
12fs.chmod(path, mode, callback)
異步 chmod().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
13fs.chmodSync(path, mode)
同步 chmod().
14fs.fchmod(fd, mode, callback)
異步 fchmod().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
15fs.fchmodSync(fd, mode)
同步 fchmod().
16fs.lchmod(path, mode, callback)
異步 lchmod().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。Only available on Mac OS X.
17fs.lchmodSync(path, mode)
同步 lchmod().
18fs.stat(path, callback)
異步 stat(). 回調(diào)函數(shù)有兩個(gè)參數(shù) err, stats,stats 是 fs.Stats 對(duì)象。
19fs.lstat(path, callback)
異步 lstat(). 回調(diào)函數(shù)有兩個(gè)參數(shù) err, stats,stats 是 fs.Stats 對(duì)象。
20fs.fstat(fd, callback)
異步 fstat(). 回調(diào)函數(shù)有兩個(gè)參數(shù) err, stats,stats 是 fs.Stats 對(duì)象。
21fs.statSync(path)
同步 stat(). 返回 fs.Stats 的實(shí)例。
22fs.lstatSync(path)
同步 lstat(). 返回 fs.Stats 的實(shí)例。
23fs.fstatSync(fd)
同步 fstat(). 返回 fs.Stats 的實(shí)例。
24fs.link(srcpath, dstpath, callback)
異步 link().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
25fs.linkSync(srcpath, dstpath)
同步 link().
26fs.symlink(srcpath, dstpath[, type], callback)
異步 symlink().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。 type 參數(shù)可以設(shè)置為 'dir', 'file', 或 'junction' (默認(rèn)為 'file') 。
27fs.symlinkSync(srcpath, dstpath[, type])
同步 symlink().
28fs.readlink(path, callback)
異步 readlink(). 回調(diào)函數(shù)有兩個(gè)參數(shù) err, linkString。
29fs.realpath(path[, cache], callback)
異步 realpath(). 回調(diào)函數(shù)有兩個(gè)參數(shù) err, resolvedPath。
30fs.realpathSync(path[, cache])
同步 realpath()。返回絕對(duì)路徑。
31fs.unlink(path, callback)
異步 unlink().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
32fs.unlinkSync(path)
同步 unlink().
33fs.rmdir(path, callback)
異步 rmdir().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
34fs.rmdirSync(path)
同步 rmdir().
35fs.mkdir(path[, mode], callback)
S異步 mkdir(2).回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。 訪問(wèn)權(quán)限默認(rèn)為 0777。
36fs.mkdirSync(path[, mode])
同步 mkdir().
37fs.readdir(path, callback)
異步 readdir(3). 讀取目錄的內(nèi)容。
38fs.readdirSync(path)
同步 readdir().返回文件數(shù)組列表。
39fs.close(fd, callback)
異步 close().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
40fs.closeSync(fd)
同步 close().
41fs.open(path, flags[, mode], callback)
異步打開(kāi)文件。
42fs.openSync(path, flags[, mode])
同步 version of fs.open().
43fs.utimes(path, atime, mtime, callback)
 
44fs.utimesSync(path, atime, mtime)
修改文件時(shí)間戳,文件通過(guò)指定的文件路徑。
45fs.futimes(fd, atime, mtime, callback)
 
46fs.futimesSync(fd, atime, mtime)
修改文件時(shí)間戳,通過(guò)文件描述符指定。
47fs.fsync(fd, callback)
異步 fsync.回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。
48fs.fsyncSync(fd)
同步 fsync.
49fs.write(fd, buffer, offset, length[, position], callback)
將緩沖區(qū)內(nèi)容寫(xiě)入到通過(guò)文件描述符指定的文件。
50fs.write(fd, data[, position[, encoding]], callback)
通過(guò)文件描述符 fd 寫(xiě)入文件內(nèi)容。
51fs.writeSync(fd, buffer, offset, length[, position])
同步版的 fs.write()。
52fs.writeSync(fd, data[, position[, encoding]])
同步版的 fs.write().
53fs.read(fd, buffer, offset, length, position, callback)
通過(guò)文件描述符 fd 讀取文件內(nèi)容。
54fs.readSync(fd, buffer, offset, length, position)
同步版的 fs.read.
55fs.readFile(filename[, options], callback)
異步讀取文件內(nèi)容。
56fs.readFileSync(filename[, options])
57fs.writeFile(filename, data[, options], callback)
異步寫(xiě)入文件內(nèi)容。
58fs.writeFileSync(filename, data[, options])
同步版的 fs.writeFile。
59fs.appendFile(filename, data[, options], callback)
異步追加文件內(nèi)容。
60fs.appendFileSync(filename, data[, options])
The 同步 version of fs.appendFile.
61fs.watchFile(filename[, options], listener)
查看文件的修改。
62fs.unwatchFile(filename[, listener])
停止查看 filename 的修改。
63fs.watch(filename[, options][, listener])
查看 filename 的修改,filename 可以是文件或目錄。返回 fs.FSWatcher 對(duì)象。
64fs.exists(path, callback)
檢測(cè)給定的路徑是否存在。
65fs.existsSync(path)
同步版的 fs.exists.
66fs.access(path[, mode], callback)
測(cè)試指定路徑用戶權(quán)限。
67fs.accessSync(path[, mode])
同步版的 fs.access。
68fs.createReadStream(path[, options])
返回ReadStream 對(duì)象。
69fs.createWriteStream(path[, options])
返回 WriteStream 對(duì)象。
70fs.symlink(srcpath, dstpath[, type], callback)
異步 symlink().回調(diào)函數(shù)沒(méi)有參數(shù),但可能拋出異常。

更多詳情可點(diǎn)擊查看:http://nodejs.org/api/fs.html


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)