日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發(fā)布時間:2024/10/8 windows 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二十六、深入Node.js中的文件系统fs模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

@Author:Runsen
@Date:2020/6/8

人生最重要的不是所站的位置,而是內(nèi)心所朝的方向。只要我在每篇博文中寫得自己體會,修煉身心;在每天的不斷重復(fù)學(xué)習中,耐住寂寞,練就真功,不畏艱難,奮勇前行,不忘初心,砥礪前行,人生定會有所收獲,不留遺憾 (作者:Runsen )

作者介紹:Runsen目前大三下學(xué)期,專業(yè)化學(xué)工程與工藝,大學(xué)沉迷日語,Python, Java和一系列數(shù)據(jù)分析軟件。導(dǎo)致翹課嚴重,專業(yè)排名中下。.在大學(xué)60%的時間,都在CSDN。決定今天比昨天要更加努力。

我預(yù)計寫前端寫到五十多篇,慢慢來,才能不斷地成長

這次我決定寫入Node.js中的文件系統(tǒng)fs模塊。搞起來,不對是讓我們hi起來。

文章目錄

  • fs模塊
  • 文件權(quán)限
  • 讀取文件
  • 文件寫入
  • 文件夾創(chuàng)建
  • 文件刪除
  • 拷貝文件

fs模塊

嗨之前,我先去菜雞教程看看,你也可以點一下下面的鏈接。

菜雞教程中fs

fs模塊是內(nèi)置的模塊,Node.js 直接使用require關(guān)鍵字加載這個模塊,并把它賦值給一個變量。這樣就可以調(diào)用模塊暴露的任何方法了。

就是這么簡單。

var fs = require("fs");

Node.js 文件系統(tǒng)(fs 模塊)模塊中的方法有異步和同步版本,例如讀取文件內(nèi)容的函數(shù)有異步的 fs.readFile() 和同步的 fs.readFileSync()。有 Sync 后綴為同步方法,反之則為異步方法。

區(qū)別就是,同步方法在程序繼續(xù)執(zhí)行之前需要等待同步方法執(zhí)行完畢返回結(jié)果;異步方法則在被調(diào)用之后立即返回,以便程序在被調(diào)用方法完成其他任務(wù)的同時執(zhí)行其它操作,往往通過回調(diào)函數(shù)處理異步調(diào)用的結(jié)果。

異步的方法函數(shù)最后一個參數(shù)為回調(diào)函數(shù),回調(diào)函數(shù)的第一個參數(shù)包含了錯誤信息(error)。

建議大家使用異步方法,比起同步,異步方法性能更高,速度更快,而且沒有阻塞。(來源:菜鳥教程)

文件權(quán)限

文件權(quán)限表:

在上圖中,我們可以看出系統(tǒng)中針對三種類型進行權(quán)限分配,即文件所有者(自己)、文件所屬組(家人)和其他用戶(陌生人),文件操作權(quán)限又分為三種,讀、寫和執(zhí)行,數(shù)字表示為八進制數(shù),具備權(quán)限的八進制數(shù)分別為 4、2、1,不具備權(quán)限為 0。

因此6就是讀和寫,7就是所有權(quán)限。

讀取文件

下面代碼來源:菜鳥教程

示例:
假設(shè)有如下文件test.txt:

Runsen嗨起來,學(xué)互聯(lián)網(wǎng)工作技能,以后就是不去化工廠 化工沒前途,坑人專業(yè)

同步讀取文件

synchronization.js內(nèi)容如下:

var fs = require("fs"); var data = fs.readFileSync('test.txt'); //讀取結(jié)果是二進制,要轉(zhuǎn)化成我們認識的 console.log("同步讀取文件內(nèi)容為:\n" + data.toString()); console.log("程序執(zhí)行完畢");

啟動文件:

>node synchronization.js 同步讀取文件內(nèi)容為: Runsen嗨起來,學(xué)互聯(lián)網(wǎng)工作技能,以后就是不去化工廠 化工沒前途,坑人專業(yè)

異步讀取文件

asynchronous.js內(nèi)容如下:

var fs = require("fs") fs.readFile('test.txt', function(err,data){if(err){return console.error(err);}console.log("異步讀取文件內(nèi)容為:\n"+data.toString()); }); console.log("程序執(zhí)行完畢");

啟動文件:

>node asynchronous.js 異步讀取文件內(nèi)容為: Runsen嗨起來,學(xué)互聯(lián)網(wǎng)工作技能,以后就是不去化工廠 化工沒前途,坑人專業(yè)

文件寫入

下面都是用異步的,畢竟同步?jīng)]必要學(xué)習。

異步模式下寫入文件的語法為:

fs.writeFile(file, data[, options], callback)
  • file – 文件名或文件描述符
  • data – 要寫入文件的數(shù)據(jù),可以是 String(字符串) 或 Buffer(緩沖) 對象
  • options – 該參數(shù)是一個對象,包含 {encoding, mode, flag}。默認編碼為utf8,模式為 0666,flag為’w’
  • callback – 回調(diào)函數(shù),回調(diào)函數(shù)只包含錯誤信息參數(shù)(err),在寫入失敗時返回
var fs = require("fs"); console.log("準備寫入文件"); fs.writeFile('write.txt', '化工沒前途,坑人專業(yè)', function(err){if (err) {return console.error(err);}console.log("數(shù)據(jù)寫入成功!"); });

啟動文件,write.txt中成功被寫內(nèi)容:

> node writefile.js 準備寫入文件 數(shù)據(jù)寫入成功!

文件夾創(chuàng)建

//文件夾創(chuàng)建 //1 -- 執(zhí)行 2 -- 寫入 4 -- 讀取 7=1+2+4 權(quán)限:創(chuàng)建的文件夾可執(zhí)行可讀可寫 fs.mkdir("img",0777,function (err) {if(err){console.log(err);}else {console.log("創(chuàng)建成功");} })

文件刪除

//刪除文件 fs.unlink("write.txt",function (err) {if(err){return console.log(err);}else {console.log("刪除成功");} })

拷貝文件

fs.copyFile(filenameA, filenameB,callback)

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

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

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

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。