国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Node.js -- fs模塊

這篇具有很好參考價(jià)值的文章主要介紹了Node.js -- fs模塊。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

fs – file system
fs模塊可以實(shí)現(xiàn)與硬盤的交互
例如文件的創(chuàng)建、刪除、重命名、移動(dòng),
還有文件內(nèi)容的寫入、讀取,以及文件夾的相關(guān)操作

1. 寫入文件

1.1 寫入文件

  1. 導(dǎo)入fs 模塊
const fs = require('fs');
  1. 寫入文件
fs.writeFile('./座右銘.txt','三人行,則必有我?guī)熝?,err =>
// err寫入失?。哄e(cuò)誤對(duì)象 寫入成功:nul1
if(err){
console.1og('寫入失敗');
return;
console.1og('寫入成功');
}
);
console.log(1+1);

// 2
// 寫入成功
Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端
其實(shí),我們平常文件的保存也是使用了node 的fs 模塊!

1.2 同步和異步

  1. 異步執(zhí)行
    上面我們?cè)趯W(xué)習(xí)寫入模塊時(shí)舉出的案例就時(shí)是異步編程,程序會(huì)先輸出2 的原因是js 文件從上之下執(zhí)行,寫入文件時(shí)時(shí)異步執(zhí)行,就像但與我們之前學(xué)過的setTimeOut 定時(shí)器。

  2. 同步執(zhí)行

fs.writeFileSync('./data.txt','test');
// 這種方法沒有回調(diào)函數(shù)

此時(shí)程序沒有其他線程,只能等這步代碼執(zhí)行完之后再進(jìn)行下面的程序。

1.3 文件追加寫入

// 第一種方法
fs.appendFile('./座右銘.txt','擇其善者而從之,擇期不善者而改之',err=>{
//判斷
if(err){
console.log('寫入失敗');
return;
}
console.log('追加寫入成功');
});
// 第二種方法
fs.appendFileSync('./座右銘.txt','擇其善者而從之,擇期不善者而改之')
// 第三種方法
fs.appendFile('./座右銘.txt','love love love',{flag: 'a'},err=>{
//判斷
if(err){
console.log('寫入失敗');
return;
}
console.log('\r\n追加寫入成功'); // \r\n 表示換行
});
// 這種方法我們一般在日志使用

1.4 流式寫入

// 1.導(dǎo)人fs
const fs = require('fs');
// 2.創(chuàng)建寫入流對(duì)象
const ws = fs.createWriteStream('./觀書有感.txt');
// 3.write
ws.write('半畝方塘一鑒開r\n');
ws.write('天光云影共徘徊\r\n');
ws.write('間渠那得清如許r\n');
ws.write('為有源頭活水來\r\n');
// 4.關(guān)閉通道
ws.close();

之前講過的寫入文件方式都是調(diào)用一次方法寫入一次,會(huì)消耗資源,而這種方法的優(yōu)勢(shì)就是在沒有關(guān)閉通道的時(shí)候,可以一直向文件中寫入內(nèi)容。

1.5 文件寫入的場(chǎng)景

文件寫入在計(jì)算機(jī)中是一個(gè)非常常見的操作,下面的場(chǎng)景都用到了文件寫入

  • 下載文件
  • 安裝軟件
  • 保存程序日志,如Git
  • 編輯器保存文件
  • 視頻錄制

當(dāng)需要持久化保存數(shù)據(jù)的時(shí)候,應(yīng)該想到文件寫入

2. 讀取文件

2.1 異步和同步讀取

語法:fs.readFile(path[,options],callback)
參數(shù)說明:

  • path文件路徑
  • options選項(xiàng)配置
  • callback回調(diào)函數(shù)
    返回值:undefined
// 1.引入fs模塊
const fs = require('fs');

// 2.異步讀取
fs.readFile('./觀書有感.txt',(err,
data) => {
if(err){
console.log('讀取失敗~');
return;
}
console.log(data.toString());
)
})

// 3.同步讀取
let data = fs.readFileSync('./觀書有感.txt');
console.log(data.toString());

2.2 讀取文件應(yīng)用場(chǎng)景

  • 電腦開機(jī)
  • 程序運(yùn)行
  • 編輯器打開文件
  • 查看圖片
  • 播放視頻
  • 播放音樂
  • Git 查看日志
  • 上傳文件
  • 查看聊天記錄

2.3 流式讀取

流式讀取就是相當(dāng)于把文件分成了若干塊兒,一次讀取若干塊兒內(nèi)容。

// 1.引入fs模塊
const fs = require('fs');
// 2.創(chuàng)建讀取流對(duì)象
const rs = fs.createReadStream('../資料/笑看風(fēng)云.mp4');
// 3.綁定data事件
// chunk --> 塊兒 大塊兒
rs.on('data',chunk => {
console.log(chunk)
console.log(chunk.length);// 65536字節(jié) = 64KB
// console.log(chunk.toString()); // 視頻信號(hào)不是以字符串的形式存儲(chǔ)的,這樣強(qiáng)制使用UTF-8 形式輸出的內(nèi)容會(huì)亂碼
});
//
console.log(chunk.toString());// 65536 = 64KB
):
// 4.end可選事件
rs.on('end',()=>{
console.1og('讀取完成');
}

2.4 fs 練習(xí) – 文件復(fù)制

// 方式一 readFile
const fs = require('fs');
// 讀取文件內(nèi)容
// let data = fs.readFileSync('../資料/笑看風(fēng)云.mp4');
// 寫入文件
// fs.writeFileSync('../資料/笑看風(fēng)云-2.mp4',data);
console.log(process.memoryUsage());// rss => 整個(gè)文件大小 => 110718784字節(jié) => 105MB
// process.memoryUsage() 獲取文件內(nèi)存

// 方式二 流式操作
// 創(chuàng)建讀取流對(duì)象
const rs = fs.createReadStream('./資料/笑看風(fēng)云.mp4');
// 創(chuàng)建寫入流對(duì)象
const ws = fs.createWriteStream('../資料/笑看風(fēng)云-3.mp4');
// 綁定data事件
rs.on('data',chunk => {ws.write(chunk);
});
rs.on('end',()=>
console.log(process.memoryUsage());//43106304 => 41MB
})
rs.pipe(ws) // 了解即可 也是一種文件寫入流

3. 文件重命名和移動(dòng)

// 文件重命名
// 1.導(dǎo)入fs模塊
const fs = require('fs');
// 2.調(diào)用rename方法
fs.rename('./座右銘.txt','./論語.txt',err=>{if(err){
console.log('操作失敗~');
return;
}
console.log('操作成功');
});

// 文件移動(dòng)
fs.rename('./data.txt','../資料/data.txt',err => {
if(err){
console.log('操作失敗~');
return;
}
console.log('操作成功');
});

Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端

4. 文件刪除

// 1.導(dǎo)入fs模塊
const fs require('fs');
// 2.調(diào)用un1ink方法 對(duì)應(yīng)同步操作=>unlinkSync
fs.unlink('./觀書有感.txt',err=>{
if(err){
console.1og('刪除失敗~');
return;
}
console.log('刪除成功');
});

// 1.導(dǎo)入fs模塊
const fs require('fs');
// 2.調(diào)用rm方法 對(duì)應(yīng)同步操作=>rmSync
fs.rm('./觀書有感.txt',err=>{
if(err)
console.1og('刪除失敗~');
return;
console.log('刪除成功)});

5. 文件夾操作

5.1 創(chuàng)建文件夾

// 1.導(dǎo)入fs模塊
const fs require('fs');

//第一種方法
// 2.創(chuàng)建文件夾mk make制作dir directory文件夾
fs.mkdir('./html',err =>
if(err){
console.1og('創(chuàng)建失敗~');
return;
}
console.1og('創(chuàng)建成功');
})

// 第二種方法 遞歸創(chuàng)建
fs.mkdir('./a/b/c',{recursive: true},err =
if(err){
console.1og('創(chuàng)建失敗~');
return;
}
console.1og('創(chuàng)建成功');
})

5.2 讀取文件夾

//2-3讀取文件夾
// read 讀取 dir directory 文件夾
fs.readdir('./資料',(err,data)=>{
if(err){
console.1og('讀取失敗');
return;
}
console.log(data);
})

fs.readdir('./',(err,data) => {
if(err){
console.1og('讀取失敗');
return
}
console.log(data);
})

5.3 刪除文件夾

// rm => remove 
fs.rmdir('./html',err =
if(err){
console.1og('刪除失敗');
return;
console.log('刪除成功');
});

// 遞歸刪除
// 文件夾不為空時(shí)無法刪除
// 不建議使用
fs.rmdir('./a',{recursive:true},err =
if(err){
console.log(err);
return;
console.1og('刪除成功');
});

//建議使用
fs.rm('./a',{recursive:true},err =
if(err){
console.log(err);
return;
console.1og('刪除成功);
})

6. 查看資源狀態(tài)

// 1.導(dǎo)入fs模塊
const fs require('fs');
// 2.stat方法status縮寫狀態(tài)
fs.stat('./資料/笑看風(fēng)云.mp4',(err,data)
=>{
if(err){
console.1og('操作失敗')return;
}
console.log(data);
// data.file() => 查看是否為文件
// data.isDirectory() => 查看是否為文件夾
})

7. 資源路徑

Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端

7.1 路徑使用

// 1.導(dǎo)入fs模塊
const fs require('fs');

// 相對(duì)路徑
// 當(dāng)前文件夾
fs.writeFileSync('./index.html','love');
// fs.writeFileSync('index.html','love');
// 上一級(jí)文件夾
fs.writeFileSync('../index.html','love');

//絕對(duì)路徑
fs.writeFilesync('D:/index.html','love');
// fs.writeFileSync('C:/index.html','love'); 報(bào)錯(cuò) 權(quán)限不允許

7.2 相對(duì)路徑的bug

現(xiàn)有文件夾目錄如下:
Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端
執(zhí)行以下代碼:

const fs = require('fs');
fs.writeFileSync('./index.html','love');

Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端
為什么index.html 創(chuàng)建在了代碼的同級(jí)目錄下呢?這是因?yàn)?strong>相對(duì)路徑的參照物是命令行的工作目錄。
Node.js -- fs模塊,node,node.js,學(xué)習(xí),前端
要解決這個(gè)問題就要轉(zhuǎn)換為絕對(duì)路徑:
我們每次去寫絕對(duì)變量都需要寫好長(zhǎng)一段,但是使用__dirname(可以理解為全局變量,保存的是所在文件的所在目錄的絕對(duì)路徑)

console.log(__dirname);
fs.writeFileSync(__dirname + '/index.html','love');

7.3 fs 練習(xí) – 批量重命名

const fs = require('fs');
const files fs.readdirSync('./code');
// 遍歷數(shù)組
files.forEach(item =>{
// 拆分文件名
let data = item.split('-');
let [num,name] = data;
// 判斷
if(Number(num) < 10){
num = '0' + num;
//創(chuàng)建新的文件名
let newName = num +'-' +name;
//重命名
fs.renameSync(`./code/${item}`,`./code/${newName}`);
})

思考:
如果將02 文件刪除,那么怎么將文件名稱03變02,以此類推將下面所有的文件名稱修改,接著排序。

答案在資料中。文章來源地址http://www.zghlxwxcb.cn/news/detail-857588.html

到了這里,關(guān)于Node.js -- fs模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Node.js中fs模塊

    fs模塊是Node.js中的一個(gè)核心模塊,全稱為File System(文件管理系統(tǒng))。該模塊專門用來操作系統(tǒng)中的文件,常用的操作方式是對(duì)文件的讀取和寫入。 fs模塊的API大都提供三種操作方式: 同步操作文件:代碼會(huì)被阻塞,不會(huì)繼續(xù)執(zhí)行。 異步回調(diào)函數(shù)操作文件:代碼不會(huì)被阻塞,

    2024年01月25日
    瀏覽(62)
  • Node.js |(二)Node.js API:fs模塊 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程

    Node.js |(二)Node.js API:fs模塊 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程

    學(xué)習(xí)視頻 :尚硅谷2023版Node.js零基礎(chǔ)視頻教程,nodejs新手到高手 fs : file system ,文件系統(tǒng)。 fs模塊可以實(shí)現(xiàn)與硬盤的交互 ,例如文件的創(chuàng)建、刪除、重命名、移動(dòng)、內(nèi)容的寫入讀取以及文件夾的相關(guān)操作。 語法 : fs.writeFile(file,data[,options],callback) 參數(shù)說明 : file 文件名

    2024年02月12日
    瀏覽(30)
  • 介紹Node.js中fs模塊 代碼和注釋。

    Node.js中的fs模塊提供了一些用于文件系統(tǒng)操作的API,包括文件讀寫、目錄操作等。 使用fs.readFile()方法可以讀取文件內(nèi)容。該方法的第一個(gè)參數(shù)是文件路徑,第二個(gè)參數(shù)是可選的選項(xiàng)對(duì)象,第三個(gè)參數(shù)是回調(diào)函數(shù)。回調(diào)函數(shù)的第一個(gè)參數(shù)是錯(cuò)誤對(duì)象,第二個(gè)參數(shù)是讀取的文件

    2024年02月07日
    瀏覽(47)
  • Node.js-fs、path、http模塊

    Node.js-fs、path、http模塊

    Node.js 作為一個(gè)JavaScript 的運(yùn)行環(huán)境,僅僅提供了基礎(chǔ)的功能和 AP1。然而,基于 ode.s 提供的這些基礎(chǔ)能,很多強(qiáng)大的工具和框架如雨后春筍,層出不窮,所以學(xué)會(huì)了 Nodejs,可以讓前端程序員勝任更多的工作和崗位: 基于Express 框架(http://www.expressjs.com.cn/),可以快速構(gòu)建 Web 應(yīng)用

    2024年02月04日
    瀏覽(51)
  • node.js內(nèi)置模塊fs,path,http使用方法

    NodeJs中分為兩部分 一是V8引擎為了解析和執(zhí)行JS代碼。 二是內(nèi)置API,讓JS能調(diào)用這些API完成一些后端操作。 內(nèi)置API模塊(fs、path、http等) 第三方API模塊(express、mysql等) fs模塊 fs.readFile()方法,用于讀取指定文件中的內(nèi)容。 fs.writeFile()方法,用于向執(zhí)行的文件中寫入內(nèi)容 path路徑處

    2024年02月12日
    瀏覽(101)
  • node自主學(xué)習(xí)——fs文件操作模塊

    node自主學(xué)習(xí)——fs文件操作模塊

    目錄 讀文件 讀文件是否成功的判定 寫文件 寫文件是否成功的判定 備注:VsCode、node?v18.17.0

    2024年02月16日
    瀏覽(24)
  • Node.js - fs模塊、path模塊、http模塊、Node.js模塊化(ECMAScript標(biāo)準(zhǔn)的導(dǎo)出和導(dǎo)入)、包、npm包的管理和安裝依賴、nodemon

    Node.js - fs模塊、path模塊、http模塊、Node.js模塊化(ECMAScript標(biāo)準(zhǔn)的導(dǎo)出和導(dǎo)入)、包、npm包的管理和安裝依賴、nodemon

    什么是 Node.js,有什么用,為何能獨(dú)立執(zhí)行 JS 代碼,演示安裝和執(zhí)行 JS 文件內(nèi)代碼? Node.js 是一個(gè)獨(dú)立的 JavaScript 運(yùn)行環(huán)境,能獨(dú)立執(zhí)行 JS 代碼,因?yàn)檫@個(gè)特點(diǎn),它可以用來 編寫服務(wù)器后端的應(yīng)用程序 在** 傳統(tǒng)Web開發(fā)中,瀏覽器就是JavaScript的運(yùn)行時(shí)環(huán)境 **, 因?yàn)樗峁┝?/p>

    2024年02月02日
    瀏覽(31)
  • Node.js-fs模塊文件創(chuàng)建、刪除、重命名、文件內(nèi)容的寫入、讀取以及文件夾的相關(guān)操作

    異步寫入:writeFile() 同步寫入:writeFileSync() 異步追加寫入:appendFile() 同步追加寫入:appendFileSync() 方式一(appendFile): 方式二(writeFile): fs.createWriteStream( path [, options ] ) 程序打開一個(gè)文件是需要消耗資源的 ,流式寫入可以減少打開關(guān)閉文件的次數(shù)。 流式寫入方式適用于

    2024年02月14日
    瀏覽(96)
  • 前端node.js入門-前端工程化與模塊化

    前端node.js入門-前端工程化與模塊化

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 Node.js 入門? 什么是 Node.js? 什么是前端工程化? ? Node.js 為何能執(zhí)行 JS?? fs 模塊 - 讀寫文件? path 模塊 - 路徑處理 URL 中的端口號(hào)? 常見的服務(wù)程序? Node.js 模塊化 什

    2024年02月14日
    瀏覽(158)
  • node中的內(nèi)置模塊path和fs

    Node中的path模塊是用來操作文件路徑的內(nèi)置模塊,主要用于字符串路徑操作,其有多種用法用來返回不同的路徑信息。 path.join path.join()方法主要用于連接路徑。該方法的主要作用就是將所有傳入的路徑片段連接在一起,然后規(guī)范化生成的路徑。需要注意的是,在Join操作中’

    2024年02月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包