1. 程式人生 > >node.js 使用fs模組對系統檔案及目錄進行讀寫操作

node.js 使用fs模組對系統檔案及目錄進行讀寫操作

如果要用這個模組,首先需要引入,fs已經屬於node.js自帶的模組,所以直接引入即可

var fs = require('fs');
1.讀取檔案readFile方法使用

fs.readFile(filename,[option],callback) 方法讀取檔案。

引數說明:

  • filename String 檔名
  • option Object
    • encoding String |null default=null
    • flag String default='r'
  • callback Function
// 設定編碼格式
fs.readFile('./test.txt', 'utf-8', function(err, data) {
    // 讀取檔案失敗/錯誤
    if (err) {
        throw err;
    }
    // 讀取檔案成功
    console.log('utf-8: ', data.toString());
});
2.寫入檔案writeFile方法使用

使用fs.writeFile(filename,data,[options],callback)寫入內容到檔案。

引數說明:

  • filename String 檔名
  • data String|buffer
  • option Object
    • encoding String |nulldefault='utf-8'
    • mode Number default=438(aka 0666 in Octal)
    • flag Stringdefault='w'
  • callback Function
var fs = require('fs'); // 引入fs模組

// 寫入檔案內容(如果檔案不存在會建立一個檔案)
// 寫入時會先清空檔案
fs.writeFile('./test2.txt', 'test test', function(err) {
    if (err) {
        throw err;
    }

    console.log('Saved.');

    // 寫入成功後讀取測試
    fs.readFile('./test2.txt', 'utf-8', function(err, data) {
        if (err) {
            throw err;
        }
        console.log(data);
    });
});

因為預設flag='w'是寫,會清空檔案,想要追加,可以傳遞一個flag引數,如下。

flag傳值,r代表讀取檔案,w代表寫檔案,a代表追加。

var fs = require('fs'); // 引入fs模組

// 寫入檔案內容(如果檔案不存在會建立一個檔案)
// 傳遞了追加引數 { 'flag': 'a' }
fs.writeFile('./test2.txt', 'test test', { 'flag': 'a' }, function(err) {
    if (err) {
        throw err;
    }

    console.log('Saved.');

    // 寫入成功後讀取測試
    fs.readFile('./test2.txt', 'utf-8', function(err, data) {
        if (err) {
            throw err;
        }
        console.log(data);
    });
});
3.建立目錄mkdir使用

使用fs.mkdir(path,[mode],callback)建立目錄,path是需要建立的目錄,[mode]是目錄的許可權(預設是0777),callback是回撥函式。

var fs = require('fs'); // 引入fs模組

// 建立 newdir 目錄
fs.mkdir('./newdir', function(err) {
    if (err) {
        throw err;
    }
    console.log('make dir success.');
});
4.讀取目錄readdir
var fs = require('fs'); // 引入fs模組

fs.readdir('./newdir', function(err, files) {
    if (err) {
        throw err;
    }
    // files是一個數組
    // 每個元素是此目錄下的檔案或資料夾的名稱
    console.log(files);
});
5.刪除檔案unlink
var fs = require('fs'); // 引入fs模組

fs.unlink('./newfile.txt', function(err) {
    if (err) {
        console.log(err);
        return false;
    }
    console.log("success");
});

6.刪除空資料夾rmdir

var fs = require('fs'); // 引入fs模組

fs.rmdir('./newdir', function(err) {
    if (err) {
        console.log(err);
        return false;
    }
    console.log("success");
});