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
參數爲null
,data
參數爲讀取到的String
。當讀取發生錯誤時,err
參數表明一個錯誤對象,data
爲undefined
。這也是Node.js標準的回調函數:第一個參數表明錯誤信息,第二個參數表明結果。bash
'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) {
// 出錯了
}
複製代碼
'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參數。函數
'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);
}
}
});
複製代碼