欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js-fs文件系統(tǒng)模塊這是你知道嗎

 更新時(shí)間:2022年02月11日 12:14:50   作者:執(zhí)手天涯@  
這篇文章主要為大家詳細(xì)介紹了node.js-fs文件系統(tǒng)模塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

1、什么是fs文件系統(tǒng)模塊

【解釋】: fs文件系統(tǒng)模塊是Node.js官方提供的,用來(lái)操作文件的模塊,它提供了一系列的方法和屬性,用來(lái)滿足用戶對(duì)文件操作的基本需求。

【基本使用】:

安裝node后直接導(dǎo)入

const fs = require ('fs')

2、讀取指定文件的內(nèi)容

1、fs.readFile()的語(yǔ)法格式

【語(yǔ)法】:

fs.readFile(path, [,options], callback)

【參數(shù)解讀】:

  • 參數(shù)1:必選參數(shù),表示讀取文件的路徑
  • 參數(shù)2:可選參數(shù),表示可選參數(shù),表示通過(guò)什么方式的編碼來(lái)讀取文件
  • 參數(shù)3:必選參數(shù),回調(diào)函數(shù),通過(guò)回調(diào)函數(shù)獲取文件內(nèi)容

2、fs.readFile()讀取文件內(nèi)容

【代碼示例】:

// 1、導(dǎo)入fs模塊
const fs = require('fs');
// 2、使用fs.readfiles()方法讀取指定文件的內(nèi)容
/**
 * 參數(shù)1:讀取文件的存放路徑
 * 參數(shù)2:讀取文件的時(shí)候采用的編碼格式
 * 參數(shù)3:回調(diào)函數(shù),參數(shù)1表示讀取失敗的結(jié)果 參數(shù)2 表示讀取成功的結(jié)果
 */
fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
    // 文件信息讀取成功的時(shí)候err返回值是null
    console.log(err);
    console.log('------------------');
    console.log(dataStr);
})

3、判斷文件是否讀取成功

【代碼示例】:

// 1、導(dǎo)入fs模塊
const fs = require('fs');
// 2、使用fs.readfiles()方法讀取指定文件的內(nèi)容
/**
 * 參數(shù)1:讀取文件的存放路徑
 * 參數(shù)2:讀取文件的時(shí)候采用的編碼格式
 * 參數(shù)3:回調(diào)函數(shù),參數(shù)1表示讀取失敗的結(jié)果 參數(shù)2 表示讀取成功的結(jié)果
 */
fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
    if (err) {
        // 讀取文件失敗,返回錯(cuò)誤信息
        return console.log('讀取文件失?。?!' + err.message);;
    } else {
        // 讀取文件成功,打印文件信息
        console.log('讀取文件成功:'+dataStr);
    }
}) 

3、向指定文件寫入內(nèi)容

1、fs.writeFile()的語(yǔ)法格式

【語(yǔ)法】:

fs.writeFile(filePath, data, [,option] callback)

【參數(shù)解讀】:

  • 參數(shù)1:必選參數(shù),指定文件字符串路徑,表示文件的存放路徑
  • 參數(shù)2:必選參數(shù),表示要寫入的內(nèi)容
  • 參數(shù)3:可選參數(shù),表示用什么方式寫入內(nèi)容,默認(rèn)是utf-8
  • 參數(shù)4:必選參數(shù),表示文件寫入之后的回調(diào)函數(shù)。

2、fs.writeFile()寫入文件

【代碼示例】:

// 1、導(dǎo)入fs模塊
const fs = require('fs')
// 2、使用fs.writeFile()方法,向文件中寫入內(nèi)容
/**
 * 參數(shù)1:寫入信息的路徑
 * 參數(shù)2:要寫入的內(nèi)容
 * 參數(shù)3:回調(diào)函數(shù)
 * 參數(shù)4:編碼格式,默認(rèn)是utf-8,可以省略不寫
 */
fs.writeFile('./files/2.txt', '張三', function (err) {
    // 如果文件寫入成功,err返回null
    // 如果文件寫入失敗,則返回一個(gè)錯(cuò)誤對(duì)象
    console.log(err);
})

3、fs.writeFile()判斷寫入是否成功

// 1、導(dǎo)入fs模塊
const fs = require('fs')
// 2、使用fs.writeFile()方法,向文件中寫入內(nèi)容
/**
 * 參數(shù)1:寫入信息的路徑
 * 參數(shù)2:要寫入的內(nèi)容
 * 參數(shù)3:回調(diào)函數(shù)
 * 參數(shù)4:編碼格式,默認(rèn)是utf-8,可以省略不寫
 */
fs.writeFile('./files/2.txt', '張三', function (err) {
    // 如果文件寫入成功,err返回null
    // 如果文件寫入失敗,則返回一個(gè)錯(cuò)誤對(duì)象
    if (err) {
        return console.log('文件寫入失敗' + err.message);
    } else {
        console.log('文件寫入成功??!');
    }

})

4、寫入文件和讀取文件綜合應(yīng)用

【需求】:

  • 使用 fs 文件系統(tǒng)模塊,將成績(jī).txt文件中的考試數(shù)據(jù),整理到成績(jī)-ok.txt文件中。
  • 整理前,成績(jī).txt文件中的數(shù)據(jù)格式如下:
  • 小紅=100…
  • 整理后的格式如下:
  • 小紅:100…

【案例分析】:

  • 導(dǎo)入fs文件模塊
  • 讀取文件中的舊數(shù)據(jù)
  • 判斷是否讀取成功
  • 數(shù)據(jù)格式處理
  • 寫入新的文件中

【代碼實(shí)現(xiàn)】:

// 1、導(dǎo)入fs文件系統(tǒng)模塊
const fs = require("fs");
// 2、讀取成績(jī)信息
fs.readFile('./files/成績(jī).txt', 'utf-8', function (err, data) {
    // 判斷成績(jī)是否讀取成功
    if (err) {
        // 讀取失敗,返回錯(cuò)誤信息
        return console.log('讀取成績(jī)失?。?!' + err.message);
    } else {
        // 讀取成功。返回讀取的數(shù)據(jù)
        // 將成績(jī)的數(shù)據(jù)按照空格分隔
        const arrOld = data.split(' ')
        // 對(duì)分隔后的數(shù)組,對(duì)每一項(xiàng)數(shù)據(jù)進(jìn)行字符串替換操作
        arrNew = [];
        arrOld.forEach(item => {
            arrNew.push(item.replace('=', ':'))
        })
        // 對(duì)新的數(shù)組中的每一項(xiàng)進(jìn)行合并
        const newStr = arrNew.join('\r\n')
        // 將新的數(shù)據(jù)寫入文件
        fs.writeFile('./files/newScore.txt', newStr, function (err) {
            // 判斷是否寫入成功
            if (err) {
                // 寫入失敗,返回錯(cuò)誤信息
                return console.log('寫入文件信息失敗??!' + err.message);
            } else {
                // 寫入成功
                console.log('寫入文件成功??!');
            }
        })
    }
})

5、fs模塊-路徑動(dòng)態(tài)拼接問(wèn)題

【問(wèn)題描述】: 在使用 fs 模塊操作文件時(shí),如果提供的操作路徑是以 ./ 或 …/ 開(kāi)頭的相對(duì)路徑時(shí),很容易出現(xiàn)路徑動(dòng)態(tài)拼接錯(cuò)誤的問(wèn)題。

【原因】: 代碼在運(yùn)行的時(shí)候,會(huì)以執(zhí)行 node 命令時(shí)所處的目錄,動(dòng)態(tài)拼接出被操作文件的完整路徑。

【解決方案】:

在使用 fs 模塊操作文件時(shí),直接提供完整的路徑,不要提供 ./ 或 …/ 開(kāi)頭的相對(duì)路徑,從而防止路徑動(dòng)態(tài)拼接的問(wèn)題。

const fs = require('fs');
// __dirname表示當(dāng)前文件的目錄
fs.readFile(__dirname + '/files/11.txt', 'utf-8', function (err, data) {
    if (err) {
        return err.message;
    } else {
        console.log(data);
    }
})

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!          

相關(guān)文章

  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

    使用Typescript和ES模塊發(fā)布Node模塊的方法

    這篇文章主要介紹了使用Typescript和ES模塊發(fā)布Node模塊的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 前端面試之輸入npm?run后執(zhí)行原理

    前端面試之輸入npm?run后執(zhí)行原理

    這篇文章主要為大家介紹了前端面試之輸入npm?run后發(fā)生了什么及執(zhí)行原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 使用Node.js腳本自動(dòng)統(tǒng)計(jì)代碼量的實(shí)現(xiàn)代碼

    使用Node.js腳本自動(dòng)統(tǒng)計(jì)代碼量的實(shí)現(xiàn)代碼

    手動(dòng)統(tǒng)計(jì)代碼行數(shù)通常會(huì)耗費(fèi)大量時(shí)間和精力,為了提高統(tǒng)計(jì)效率并減少人為錯(cuò)誤,我們可以借助自動(dòng)化工具來(lái)完成這項(xiàng)任務(wù),本文將介紹如何使用 Node.js 腳本來(lái)自動(dòng)化統(tǒng)計(jì)項(xiàng)目代碼行數(shù),讓我們能夠輕松快捷地獲取項(xiàng)目的代碼量信息,需要的朋友可以參考下
    2023-12-12
  • Node.js巧妙實(shí)現(xiàn)Web應(yīng)用代碼熱更新

    Node.js巧妙實(shí)現(xiàn)Web應(yīng)用代碼熱更新

    本文給大家講解的是Node.js的代碼熱更新的問(wèn)題,其主要實(shí)現(xiàn)原理 是怎么對(duì) module 對(duì)象做處理,也就是手工監(jiān)聽(tīng)文件修改, 然后清楚模塊緩存, 重新掛載模塊,思路清晰考慮細(xì)致, 雖然有點(diǎn)冗余代碼,但還是推薦給大家
    2015-10-10
  • 純異步nodejs文件夾(目錄)復(fù)制功能

    純異步nodejs文件夾(目錄)復(fù)制功能

    這篇文章主要介紹了純異步nodejs文件夾(目錄)復(fù)制功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • nodejs讀取圖片返回給瀏覽器顯示

    nodejs讀取圖片返回給瀏覽器顯示

    這篇文章主要為大家詳細(xì)介紹了nodejs讀取圖片返回給瀏覽器顯示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 如何發(fā)布一個(gè)npm包到?Nexus私有倉(cāng)庫(kù)

    如何發(fā)布一個(gè)npm包到?Nexus私有倉(cāng)庫(kù)

    這篇文章主要介紹了如何發(fā)布一個(gè)npm包到?Nexus私有倉(cāng)庫(kù),通過(guò)實(shí)例代碼介紹了如何添加nexus權(quán)限及配置?npm?私庫(kù)免登錄設(shè)置的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐

    node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐

    登陸流程是指小程序用戶進(jìn)行授權(quán)登陸,即獲取用戶的微信賬號(hào)等信息本文就來(lái)介紹一下node微信小程序登錄實(shí)現(xiàn)登錄,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Node.js中的不安全跳轉(zhuǎn)如何防御詳解

    Node.js中的不安全跳轉(zhuǎn)如何防御詳解

    安全是不容忽視的,每個(gè)開(kāi)發(fā)者都知道它非常重要,真正嚴(yán)肅對(duì)待它的卻沒(méi)有幾人。下面這篇文章主要給大家介紹了關(guān)于Node.js中不安全跳轉(zhuǎn)如何防御的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì)。需要的朋友可以參考下
    2018-10-10
  • node的EventEmitter模塊基本用法簡(jiǎn)單實(shí)現(xiàn)示例

    node的EventEmitter模塊基本用法簡(jiǎn)單實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了node的EventEmitter模塊基本用法簡(jiǎn)單實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09

最新評(píng)論