如何使用 Node 和 fs 模組來讀取文件

在 Node 中,最簡單的讀取文件的方式是使用 fs.readFile() 方法,將文件路徑和一個回調函數作為參數傳遞給該方法,回調函數將在文件數據(以及錯誤)讀取完成後被調用:

const fs = require('fs')

fs.readFile('/Users/flavio/test.txt', (err, data) => {
 if (err) {
 console.error(err)
 return
 }
 console.log(data)
})

另外,你也可以使用同步版本的 fs.readFileSync()

const fs = require('fs')

try {
 const data = fs.readFileSync('/Users/flavio/test.txt', 'utf8')
 console.log(data)
} catch (err) {
 console.error(err)
}

默認的編碼格式是 utf8,但你也可以通過第二個參數來指定自定義的編碼。

fs.readFile()fs.readFileSync() 這兩個方法在返回數據之前將完整的文件內容讀取到內存中。

這意味著,處理大文件將對內存消耗和程序執行速度產生較大的影響。

在這種情況下,更好的選擇是使用流(stream)來讀取文件內容。