日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

二十六、深入Node.js中的文件系统fs模块

發布時間:2024/10/8 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二十六、深入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:

Runsen嗨起來,學互聯網工作技能,以后就是不去化工廠 化工沒前途,坑人專業

同步讀取文件

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),在寫入失敗時返回
var fs = require("fs"); console.log("準備寫入文件"); fs.writeFile('write.txt', '化工沒前途,坑人專業', function(err){if (err) {return console.error(err);}console.log("數據寫入成功!"); });

啟動文件,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)

第一個參數原始文件名
第二個參數要拷貝到的文件名

fs.copyFileSync('test.txt', 'test1.txt'); var data = fs.readFile('test1.txt', 'utf8'); console.log(data); Runsen嗨起來,學互聯網工作技能,以后就是不去化工廠 化工沒前途,坑人專業

如果本文對你有幫助,大家可以點贊轉發一波,有錯誤大家可以評論指出,感謝!

大家繼續加油,未來可期!Runsen的征途是星辰大海!

總結

以上是生活随笔為你收集整理的二十六、深入Node.js中的文件系统fs模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。