Node學習基礎(三) 之檔案的同步和非同步寫入操作(fs_檔案系統)
阿新 • • 發佈:2018-11-12
下面遇到看不懂的可以去看官方文件。
首先引入fs模組
第二步開啟檔案
官方文件格式是這樣
path 檔案路徑 這裡例子裡是FileHello.txt 如果沒有這個檔案 所以他會自動建立 FileHello.txt
- fs-同步檔案寫入操作
//1.引入fs模組 let fs = require('fs'); //2.開啟檔案 let fd = fs.openSync('FileHello.txt','w'); //3.寫入內容 fs.writeFileSync(fd, "你好我是第一句被寫入的話"); //4.儲存並退出 fs.closeSync(fd);*/
檔案。
flags可以是以下的值
‘r’ – 以讀取模式開啟檔案。
‘r+’ – 以讀寫模式開啟檔案。
‘rs’ – 使用同步模式開啟並讀取檔案。指示作業系統忽略本地檔案系統快取。
‘rs+’ – 以同步的方式開啟,讀取 並 寫入檔案。
‘w’ – 以讀取模式開啟檔案,如果檔案不存在則建立
‘wx’ – 和 ‘ w ‘ 模式一樣,如果檔案存在則返回失敗
‘w+’ – 以讀寫模式開啟檔案,如果檔案不存在則建立
‘wx+’ – 和 ‘ w+ ‘ 模式一樣,如果檔案存在則返回失敗
‘a’ – 以追加模式開啟檔案,如果檔案不存在則建立
‘ax’ – 和 ‘ a ‘ 模式一樣,如果檔案存在則返回失敗
‘a+’ – 以讀取追加模式開啟檔案,如果檔案不存在則建立
‘ax+’ – 和 ‘ a+ ‘ 模式一樣,如果檔案存在則返回失敗
mode 用於建立檔案時給檔案制定許可權,預設0666
然後關閉檔案
執行就能在檔案中看到寫入的內容了
fs-非同步寫入檔案操作(重點)
//1.引入fs模組 let fs = require('fs'); //2.開啟檔案 fs.open('FileHello2','w',(err , fd)=>{ //判斷是否出錯 if(!err){ //寫入檔案 fs.writeFile(fd , "這是個測試的內容" ,(err)=>{ if(!err){ console.log("寫入檔案成功"); }else{ throw err; } //關閉檔案 fs.close(fd, (err)=>{ if(!err){ console.log("檔案已經儲存並關閉"); } }) }); }else{ throw err; } }); //非同步訪問不會有結果,只能是回撥,非同步就是node的特色,非同步不會阻塞執行緒
一樣 先開啟檔案格式如下
這裡的callback 就是我們非同步的重點了 和同步不同就在於這個非同步回撥
callback有兩個值err(錯誤)和 fd(檔案)
如果錯誤直接丟擲錯誤
如果沒有繼續執行寫入檔案
然後執行我們的關閉檔案操作
關閉檔案在寫入檔案之後
同樣的 callback
使用回撥判斷
注意:非同步訪問不會有結果,只能是回撥,非同步就是node的特色,非同步不會阻塞執行緒