File System
File System 是文件的讀寫操作。這個模塊是由 標準的POSIX
封裝形成的。怎么使用,直接導入該模塊: require('fs')
大部分方法都有兩種,異步執行和同步執行。
讀取文件
- fs.readFile('file'[,'options'],'callback');
- fs.readFileSync('file'[,'options']);
const fs = require('fs');
fs.readFile('./readme.md', 'utf-8', (err, data) => {
if (err) {
throw err;
}
console.log(data);
})
console.log(fs.readFileSync('./readme.md', 'utf8'));
上面那段代碼是都是讀取文件的方法,只是執行方式不一樣,前者為異步執行所以有回調函數(callback),后者則為同步執行。
readFile()
第一個必要參數 file 是文件的路徑,可以是相對路徑或絕對路徑。相對路徑的話,起始點是當前進程所在路徑(process.cwd()
),而不是當前腳本所在路徑(__dirname
)。第二個必要參數是讀取文件完成后的回調函數,該回到函數有兩個參數,第一個為發生錯誤是的錯誤對象,第二個則是文件內容的Buffer
實例。readFileSync()
則沒有回調函數,該方法的返回值是文件內容的Buffer
實例,若讀取文件時發生錯誤了,則直接拋出錯誤。-
可選項
options
:-
encoding
: 默認為 null -
flag
: 默認為 r
-
寫入文件
- fs.writeFile('file'[,'options'],'callback');
- fs.writeFileSync('file'[,'options']);
寫入文件跟讀取文件差不多。
新建文件夾
mkdir(path[, mode], callback)
mode
: 默認為 0o777
判斷是文件還是目錄
- fs.stat(path, callback)
- fs.statSync(path)
const fs = require('fs');
fs.stat('./readme.md', (err, stats) => {
if (stats.isFile()) {
console.log('file')
} else if (stats.isDirectory()){
console.log('directory');
}
})
let myStats = fs.statSync('./readme.md'); // myStats 是 fs.Stats 的實例
還有好多,我就不寫了。