二十六、深入Node.js中的文件系统fs模块
@Author:Runsen
@Date:2020/6/8
人生最重要的不是所站的位置,而是內心所朝的方向。只要我在每篇博文中寫得自己體會,修煉身心;在每天的不斷重復學習中,耐住寂寞,練就真功,不畏艱難,奮勇前行,不忘初心,砥礪前行,人生定會有所收獲,不留遺憾 (作者:Runsen )
作者介紹:Runsen目前大三下學期,專業化學工程與工藝,大學沉迷日語,Python, Java和一系列數據分析軟件。導致翹課嚴重,專業排名中下。.在大學60%的時間,都在CSDN。決定今天比昨天要更加努力。
我預計寫前端寫到五十多篇,慢慢來,才能不斷地成長
這次我決定寫入Node.js中的文件系統fs模塊。搞起來,不對是讓我們hi起來。
文章目錄
- fs模塊
- 文件權限
- 讀取文件
- 文件寫入
- 文件夾創建
- 文件刪除
- 拷貝文件
fs模塊
嗨之前,我先去菜雞教程看看,你也可以點一下下面的鏈接。
菜雞教程中fs
fs模塊是內置的模塊,Node.js 直接使用require關鍵字加載這個模塊,并把它賦值給一個變量。這樣就可以調用模塊暴露的任何方法了。
就是這么簡單。
var fs = require("fs");Node.js 文件系統(fs 模塊)模塊中的方法有異步和同步版本,例如讀取文件內容的函數有異步的 fs.readFile() 和同步的 fs.readFileSync()。有 Sync 后綴為同步方法,反之則為異步方法。
區別就是,同步方法在程序繼續執行之前需要等待同步方法執行完畢返回結果;異步方法則在被調用之后立即返回,以便程序在被調用方法完成其他任務的同時執行其它操作,往往通過回調函數處理異步調用的結果。
異步的方法函數最后一個參數為回調函數,回調函數的第一個參數包含了錯誤信息(error)。
建議大家使用異步方法,比起同步,異步方法性能更高,速度更快,而且沒有阻塞。(來源:菜鳥教程)
文件權限
文件權限表:
在上圖中,我們可以看出系統中針對三種類型進行權限分配,即文件所有者(自己)、文件所屬組(家人)和其他用戶(陌生人),文件操作權限又分為三種,讀、寫和執行,數字表示為八進制數,具備權限的八進制數分別為 4、2、1,不具備權限為 0。
因此6就是讀和寫,7就是所有權限。
讀取文件
下面代碼來源:菜鳥教程
示例:
假設有如下文件test.txt:
同步讀取文件
synchronization.js內容如下:
var fs = require("fs"); var data = fs.readFileSync('test.txt'); //讀取結果是二進制,要轉化成我們認識的 console.log("同步讀取文件內容為:\n" + data.toString()); console.log("程序執行完畢");啟動文件:
>node synchronization.js 同步讀取文件內容為: Runsen嗨起來,學互聯網工作技能,以后就是不去化工廠 化工沒前途,坑人專業異步讀取文件
asynchronous.js內容如下:
var fs = require("fs") fs.readFile('test.txt', function(err,data){if(err){return console.error(err);}console.log("異步讀取文件內容為:\n"+data.toString()); }); console.log("程序執行完畢");啟動文件:
>node asynchronous.js 異步讀取文件內容為: Runsen嗨起來,學互聯網工作技能,以后就是不去化工廠 化工沒前途,坑人專業文件寫入
下面都是用異步的,畢竟同步沒必要學習。
異步模式下寫入文件的語法為:
fs.writeFile(file, data[, options], callback)- file – 文件名或文件描述符
- data – 要寫入文件的數據,可以是 String(字符串) 或 Buffer(緩沖) 對象
- options – 該參數是一個對象,包含 {encoding, mode, flag}。默認編碼為utf8,模式為 0666,flag為’w’
- callback – 回調函數,回調函數只包含錯誤信息參數(err),在寫入失敗時返回
啟動文件,write.txt中成功被寫內容:
> node writefile.js 準備寫入文件 數據寫入成功!文件夾創建
//文件夾創建 //1 -- 執行 2 -- 寫入 4 -- 讀取 7=1+2+4 權限:創建的文件夾可執行可讀可寫 fs.mkdir("img",0777,function (err) {if(err){console.log(err);}else {console.log("創建成功");} })文件刪除
//刪除文件 fs.unlink("write.txt",function (err) {if(err){return console.log(err);}else {console.log("刪除成功");} })拷貝文件
fs.copyFile(filenameA, filenameB,callback)第一個參數原始文件名
第二個參數要拷貝到的文件名
如果本文對你有幫助,大家可以點贊轉發一波,有錯誤大家可以評論指出,感謝!
大家繼續加油,未來可期!Runsen的征途是星辰大海!
總結
以上是生活随笔為你收集整理的二十六、深入Node.js中的文件系统fs模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 柏尔实木定制地板质量如何?求解答。
- 下一篇: 四十八、微信小程序开发系统组件