一、讀取文件
1. 常用讀取文件方式
const fs = require('fs')
const path = require('path')
let file = path.resolve(__dirname, './file.txt')
// 異步讀取文件內容
fs.readFile(file, { encoding: 'utf8' }, (err, data) => {
if (err) throw err
console.log('讀取的文件內容:', data)
})
2. 語法說明
/*
* 異步讀取文件內容,(若不存在文件,則發生異常)
* @param file {string | Buffer | URL | integer} 文件名或文件描述符
* @param options {Object | string}
* encoding {string | null}, 編碼方式,默認值是 null
* flag {string}, 讀取方式,默認值是 'r',打開文件用於讀取。
* 如果文件不存在,則會發生異常
* @param callback {Function} 回調函數
* err {Error} 讀取文件內容時拋出的錯誤
* data {string | Buffer} 讀取到的文件內容
*/
function readFile(file[, options], callback) {}
備注:
-
若沒有指定字符編碼,將返回原始的
Buffer
-
若
options
是字符串,則該值需是一個字符串編碼類型
fs.readFile(file, 'utf8', (err, data) => {})
- 若
file
是目錄,在Linux
、MacOS
、Windows
上會報錯
二、同步讀取文件
功能和參數與該接口的 異步 API 類似,只是參數少了 回調函數
const fs = require('fs')
fs.readFileSync(file[, options])
三、不同寫入方式
options
里面的 flag
參數值表示不同的 文件系統標志
這里表現為:不同的讀取方式
常用的幾種方式
- 'a': 打開文件用於追加。如果文件不存在,則創建該文件
- 'a+': 打開文件用於讀取和追加。如果文件不存在,則創建該文件
- 'as': 打開文件用於追加(在同步模式中)。如果文件不存在,則創建改文件
- 'r': 打開文件用於讀取。如果文件不存在,則會發生異常
- 'r+': 打開文件用於讀取和寫入。如果文件不存在,則會發生異常
- 'w': 打開文件用於寫入。如果文件不存在則創建文件,若存在則截斷文件
- 'w+': 打開文件用於讀取和寫入。如果文件不存在則創建文件,若存在則截斷文件
可以點擊查看更多 文件系統標志
四、其他類似 Api
點擊查看更多
API 詳情
fs.read(fd, buffer, offset, length, position, callback)
fs.read(fd[, options], callback)
fs.readSync(fd, buffer, offset, length, position)
fs.readSync(fd, buffer[, options])