(20)檔案系統fs
①提供了檔案的讀取、寫入、更名、删除、周遊目錄、連結等功能。
所有操作都有異步和同步兩種方法。
②檔案讀取:readfile
參數一:是檔案名;
參數二:編碼方式,預設二進制(具體搜之前的);
參數三:回調函數(參數一是錯誤,參數二是讀取的檔案内容);
标準方法:
參數二可以是utf8,也可以是utf8,也可以是utf-8。效果是一樣的
輸出:
同步版:
readfilesync(檔案名,
檔案編碼)
傳回值是data(讀取的檔案内容);如果有錯誤發生,會抛出異常,需要使用try和catch來處理;
③fs.open檔案的打開;
原型:
path是路徑,略;
flags表示打開的方式,具體如圖:
mode表示權限,預設是0666。
6表示4+2;根據推測,1執行,2寫,4讀,他們的和就是權限;
回調函數的fd表示檔案描述符:非負整數,表示作業系統核心為目前程序所維護的打開檔案的記錄表索引。
另外,第一個6表示檔案所有者的權限;第二個表示同組的使用者;第三個表示其他使用者;
這個指令需要配合write、read,或者其他指令進行操作,例如:
在test.txt檔案裡,追加寫入pppp四個字元
④fs.read檔案的讀取
他相對于fs.readfile來說,是更為底層的接口。
其作用是從fs.open的回調函數中的檔案描述符fd中讀取資料,并寫入buffer指向的緩沖區對象。
offset是buffer寫入的偏移量;
length是要從檔案中讀取的位元組數;
position是檔案讀取的起始位置(當為null時,則從目前檔案指針的位置讀取);
回調函數傳遞的bytesread表示讀取的位元組數;buffer表示緩沖區對象;
如代碼:
輸出結果:
第五行的buff表示是上面new出來的buffer對象;
3表示寫入到buf這個對象的第4個位置;
4表示讀取fd 4個位元組;
2表示從fd的第二個位元組開始讀取;
bytesread表示讀取到了4個位元組;(假如讀取到結尾了,那麼這個數字将不包含讀取到結尾的那些,比如position位置的數字很大的時候,這裡可能就是0)
buffer表示前面那個buf對象
⑤fs子產品的函數清單: