引入文件模塊
let fs = require('fs')
所有的文價(jià)操作都有同步與異步的分別,文件操作中,默認(rèn)都是異步的
一、讀取文件
fs.readFile()
第一個(gè)參數(shù),為要讀取的文件
第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),接收兩個(gè)參數(shù):error失敗的回調(diào),data成功后的回調(diào)
// 異步讀取文件時(shí),不再按照順序去執(zhí)行程序,其他代碼先執(zhí)行著,文件慢慢讀取,等到文件讀取完再輸出
fs.readFile('../data/hello.txt',function(error,data){
// 文件中存儲(chǔ)的默認(rèn)都是二進(jìn)制數(shù)據(jù) 0 1
// 這里默認(rèn)會(huì)轉(zhuǎn)成16進(jìn)制,需要通過(guò)toString轉(zhuǎn)為可認(rèn)識(shí)的字符
console.log(data.toString())
})
二、寫(xiě)入文件
fs.writeFile()
四個(gè)參數(shù):
1、文件名稱(chēng),包括文件格式;
2、需要寫(xiě)入文件的內(nèi)容;
3、可選,配置對(duì)象{flag:"a"或"w"} flag屬性: a 追加寫(xiě)入 w 正常寫(xiě)入(默認(rèn)值);
4、寫(xiě)入時(shí)的錯(cuò)誤信息;
注意:當(dāng)寫(xiě)入的內(nèi)容已經(jīng)存在時(shí),執(zhí)行寫(xiě)入文件操作時(shí)會(huì)覆蓋掉原有的文件。
fs.writeFile('hello.txt','hello node!',{flag:'a'},function(err){
if(err){
return console.log('寫(xiě)入失??!')
}
console.log('寫(xiě)入成功!')
})