Node.js 系列學習日誌#13 - 核心模組檔案系統 fs

node.js 提供了檔案操作的模組,包含讀取、刪除、寫入、更名等等的檔案操作。其中 fs 模組他還提供了同步與非同步的方法來使用。他的方法名稱也相當好懂,如果是非同步那麼就 fs.readFile() ,同步的話就是 fs.readFileSync(),相當好區別。本章節將會介紹檔案系統的基本操作,如:

  • 讀取檔案 fs.readFile
  • 寫入檔案 fs.writeFile
  • 附加檔案內容 fs.appendFile
  • 更名檔案 fs.rename
  • 刪除檔案 fs.unlink

首先我們先建立一個 nodejs-fs 目錄夾,預設檔案結構如下:

content.txt , test.txt 簡單預設寫一些內文,就可以進行以下的檔案系統相關操作:

在操作的宣告裡面,在 index.js 檔案,首先務必要檔案檔案系統模組

1
var fs = require('fs');

接著我們就可以使用 fs 所提供的方法,方法可參考 http://nodejs.org/api/fs.html

讀取檔案 fs.readFile

1
2
3
4
5
6
7
8
9
10
11
12
var fs = require('fs'); //載入檔案系統模組
//讀取 content.txt 檔案內容
fs.readFile('content.txt', 'utf-8', function(err, data){
//若有錯誤就列印訊息
if (err) {
console.error(err);
} else {

//將檔案內容輸入
console.log(data);
}
});

寫入檔案 fs.writeFile

1
2
3
4
5
6
var data1 = "hello, ithome 鐵人賽";
fs.writeFile(__dirname + '/content.txt', data1, function(err){
if (err) {
console.error(err)
}
});

附加檔案內容 fs.appendFile

1
2
3
4
5
6
var data2 = "的主計林車修該自是";
fs.appendFile(__dirname + '/content.txt', data2, function(err){
if (err) {
console.error(err)
}
});

更名檔案 fs.rename

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var oldpath = "content2.txt";
var newpath = "content.txt";
fs.rename(oldpath, newpath, function(err){
if (err)
throw err;

fs.stat('content.txt', function (err, stats) {
if (err)
throw err;

//將檔案的狀態顯示出來
// stats: {"dev":16777218,
// "mode":33204,
// "nlink":1,
// "uid":501,
// "gid":20,
// "rdev":0,"blksize":4096,
// "ino":33307834,
// "size":1254,
// "blocks":8,
// "atime":"2014-10-21T14:25:18.000Z",
// "mtime":"2014-10-21T14:24:56.000Z",
// "ctime":"2014-10-21T14:24:56.000Z"
// }

console.log('stats: ' + JSON.stringify(stats));
});
});

刪除檔案 fs.unlink

1
2
3
4
fs.unlink('test.txt', function (err) {
if (err) throw err;
console.log('successfully deleted test.txt');
});

事實上檔案系統操作還有很多方法可以使用,可以看到我們

參考資料: