Node.js基本模塊

fs

fs模塊就是文件系統模塊,負責讀寫文件。nodeJs內置的fs模塊提供了異步和同步的方法node

  • 異步讀文件
var fs = require('fs');
fs.readFile('sample.txt', 'utf-8', function (err, data) {
    if (err) {
        console.log(err);
    } else {
        console.log(data);
    }
});
複製代碼

異步讀取時,傳入的回調函數接收兩個參數,當正常讀取時,err參數爲nulldata參數爲讀取到的String。當讀取發生錯誤時,err參數表明一個錯誤對象,dataundefined。這也是Node.js標準的回調函數:第一個參數表明錯誤信息,第二個參數表明結果。bash

  • 同步讀文件
    除了標準的異步讀取模式外,fs也提供相應的同步讀取函數。同步讀取的函數和異步函數相比,多了一個Sync後綴,而且不接收回調函數,函數直接返回結果。
'use strict';
var fs = require('fs');
var data = fs.readFileSync('sample.txt', 'utf-8');
console.log(data);
複製代碼

若是同步讀取文件發生錯誤,則須要用try...catch捕獲該錯誤:異步

try {
    var data = fs.readFileSync('sample.txt', 'utf-8');
    console.log(data);
} catch (err) {
    // 出錯了
}
複製代碼
  • 異步寫文件
    將數據寫入文件是經過fs.writeFile()實現的:
'use strict';
var fs = require('fs');
var data = 'Hello, Node.js';
fs.writeFile('output.txt', data, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log('ok.');
  }
});
複製代碼

writeFile()的參數依次爲文件名、數據和回調函數。若是傳入的數據是String,默認按UTF-8編碼寫入文本文件,若是傳入的參數是Buffer,則寫入的是二進制文件。回調函數因爲只關心成功與否,所以只須要一個err參數。函數

  • stat
    若是咱們要獲取文件大小,建立時間等信息,能夠使用fs.stat(),它返回一個Stat對象,能告訴咱們文件或目錄的詳細信息
'use strict';
var fs = require('fs');
fs.stat('sample.txt', function (err, stat) {
if (err) {
    console.log(err);
} else {
    // 是不是文件:
    console.log('isFile: ' + stat.isFile());
    // 是不是目錄:
    console.log('isDirectory: ' + stat.isDirectory());
    if (stat.isFile()) {
        // 文件大小:
        console.log('size: ' + stat.size);
        // 建立時間, Date對象:
        console.log('birth time: ' + stat.birthtime);
        // 修改時間, Date對象:
        console.log('modified time: ' + stat.mtime);
    }
 }
});
複製代碼
相關文章
相關標籤/搜索