站長資訊網
        最全最豐富的資訊網站

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        本篇文章通過讀寫文件和處理路徑的案例,來一起學習下Node中的fs文件模塊和path路徑模塊,希望對大家有所幫助!

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        node.js極速入門課程:進入學習

        一、fs 文件系統模塊

        fs 模塊 是 Node.js 官方提供的、用來 操作文件 的模塊。它提供了一系列的方法和屬性,用來滿足用戶對文件的操作要求。【相關教程推薦:nodejs視頻教程】

        1、讀取指定文件

        fs.readFile():讀取指定文件中的內容

        參數 1:必選參數,字符串,表示文件的路徑
        參數 2:可選參數,表示以什么編碼格式來讀取文件
        參數 3:必選參數,文件讀取完成后,通過回調函數拿到讀取的結果

        fs.readFile(path, [options], callback)
        登錄后復制

        示例1:讀取 demo.txt 文件

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        demo.txt 文件

        '前端雜貨鋪'
        登錄后復制

        app.js 文件

        // 導入 fs 文件系統模塊 const fs = require('fs')  // 讀取文件 utf-8 為中文編碼格式 fs.readFile('../files/demo.txt', 'utf-8', function (err, data) {     console.log('err:', err)     console.log('data:', data) })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        備注:若寫錯路徑,即文件讀取失敗,打印內容如下【err為錯誤對象,data為undefined】

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        示例2:判斷讀取 demo.txt 文件是否成功

        app.js 文件

        • 故意寫錯路徑,讀取失敗
        • 失敗的結果如下

        // 導入 fs 模塊 const fs = require('fs')  // 讀取文件 fs.readFile('../files/demo1.txt', 'utf-8', function (err, data) {     if(err) {         return console.log('讀取文件失敗', err.message)     }     console.log('data:', data) })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        2、寫入指定文件

        fs.writeFile():向指定的文件中寫入內容

        參數 1:必選參數,需要指定一個文件路徑的字符串,表示文件的存放路徑
        參數 2:必選參數,表示要寫入的內容
        參數 3:可選參數,表示以什么格式寫入文件內容,默認 utf-8
        參數 4:必選參數,文件寫入完成后的回調函數

        fs.writeFile(file, data, [options], callback)
        登錄后復制

        示例1:寫入 demo.txt 文件

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        demo.txt 文件

        // 該文件內容為空
        登錄后復制

        app.js 文件

        // 導入 fs 文件系統模塊 const fs = require('fs')  // 寫入文件內容 fs.writeFile('../files/demo.txt', '這里是前端雜貨鋪', function(err, data) {     if (err) {         return console.log('寫入文件失敗', err.message)     }     console.log('文件寫入成功') })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        備注:若寫入不存在的盤中,即文件寫入失敗,打印內容如下

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        3、整理成績案例

        示例:成績的格式轉換

        轉換前的成績格式

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        轉換后的成績格式

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)
        文件格式如下

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        score.txt 文件

        • 寫入成績內容

        雜貨鋪=100 張三=98 李四=95 王五=92
        登錄后復制

        app.js 文件

        • 導入需要的 fs 文件模塊
        • 使用 fs.readFile() 方法,讀取素材目錄下的 score.txt 文件
        • 判斷文件是否讀取失敗
        • 文件讀取成功后,處理成績數據
        • 將處理完成的成績數據,調用 fs.writeFile() 方法,寫入到新文件 newScore.txt 中

        // 導入 fs 文件系統模塊 const fs = require('fs')  // 寫入文件內容 fs.readFile('../files/score.txt', 'utf-8', function (err, data) {     // 判斷是否讀取成功     if (err) {         return console.log('讀取文件失敗' + err.message)     }     // 把成績按空格進行分割     const arrOld = data.split(' ')     // 新數組的存放     const arrNew = []     // 循環分割后的數組 對每一項數據 進行字符串的替換操作     arrOld.forEach(item => {         arrNew.push(item.replace('=', ':'))     })     // 把新數組中的每一項合并 得到新的字符串     const newStr = arrNew.join('rn')      // 寫入新數據     fs.writeFile('../files/newScore.txt', newStr, function (err) {         if (err) {             return console.log('寫入成績失敗' + err.message)         }         console.log('成績寫入成功')     }) })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        4、處理路徑

        __dirname:表示當前文件所處的目錄

        示例:寫相對路徑

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        const fs = require('fs')  fs.readFile('../files/score.txt', 'utf-8', function(err, data) {     if (err) {         return console.log('文件讀取失敗' + err.message)     }     console.log('文件讀取成功') })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        示例:使用 __dirname

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        const fs = require('fs')  // 讀取文件 fs.readFile(__dirname + '/files/score.txt', 'utf-8', function(err, data) {     if (err) {         return console.log('文件讀取失敗' + err.message)     }     console.log('文件讀取成功') })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        二、path 路徑模塊

        path 模塊是 Node.js 官方提供的、用來處理路徑的模塊

        1、path.join() 路徑拼接

        path.join():用來將多個路徑判斷拼接成一個完整的路徑字符串

        參數:…paths <string> 路徑片段的序列
        返回值:返回值 <string>

        path.join([...paths])
        登錄后復制

        示例:路徑拼接

        // 導入 path 模塊 const path = require('path') // ../ 會抵消前面的路徑 const pathStr = path.join('/a','/b/c', '../', './d', 'e') console.log(pathStr)
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)
        備注:涉及到路徑拼接的操作,都要使用 path.join() 方法進行處理。不要直接用 + 進行字符串拼接

        示例:使用 path 進行路徑拼接

        const fs = require('fs') const path = require('path')  // 文件讀取 fs.readFile(path.join(__dirname, '/files/score.txt'), 'utf-8', function(err, data) {     if (err) {         return console.log('文件讀取失敗', err.message)     }     console.log('文件讀取成功') })
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        2、path.basename() 解析文件名

        path.basename():用來從路徑字符串中,將文件名解析出來

        參數 1:path 必選參數,表示一個路徑的字符串
        參數 2:ext 可選參數,表達文件擴展名
        返回值:返回 表示路徑中的最后一部分

        path.basename(path, [ext])
        登錄后復制

        示例:解析路徑,去除擴展名

        // 導入 path 模塊 const path = require('path') // 文件的存放路徑 const fpath = '/a/b/c/index.html'  // 將文件名解析出來 const fullName = path.basename(fpath) console.log(fullName) // 輸出 index.html  // 去除擴展名 const nameWithoutExt = path.basename(fpath, '.html')  console.log(nameWithoutExt) // 輸出 index
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        3、path.extname() 獲取擴展名

        path.extname():可以獲取路徑中的擴展名部分

        參數:path <string> 必選參數,表示一個路徑的字符串
        返回值:返回 <string> 返回得到的擴展名字符串

        path.extname(path)
        登錄后復制

        示例:獲取擴展名

        // 導入 path 模塊 const path = require('path') // 文件的存放路徑 const fpath = '/a/b/c/index.html' // 獲取擴展名 const fext = path.extname(fpath)  console.log(fext) // .html
        登錄后復制

        一文聊聊Node中的fs文件模塊和path路徑模塊(案例分析)

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 无码国模国产在线无码精品国产自在久国产| 天天爽夜夜爽8888视频精品| 久久久精品人妻无码专区不卡| 97久久超碰国产精品2021| 久久91这里精品国产2020| 国产亚洲一区二区精品| 亚洲欧美精品SUV| 黑巨人与欧美精品一区| 久久免费国产精品一区二区| 国产精品久久久亚洲| 自拍偷自拍亚洲精品被多人伦好爽| 国产91在线精品| 精品国产综合成人亚洲区| 久久99国产综合精品女同| 亚洲日韩中文在线精品第一| 国产精品成人观看视频| 精品国产亚洲一区二区三区| 国产精品免费看久久久| 无码精品日韩中文字幕| 亚洲午夜福利精品久久| 免费看一级毛片在线观看精品视频 | 免费精品久久久久久中文字幕| 国产成人精品免费视频大全| 精品亚洲综合久久中文字幕| 国产成人亚洲精品| 99精品国产一区二区三区2021 | 日韩精品少妇无码受不了| 久久久91人妻无码精品蜜桃HD| 国产精品V亚洲精品V日韩精品| 国产精品欧美一区二区三区| 国产精品一区二区av不卡| 亚洲中文久久精品无码| 91精品久久久久久无码| 国产综合色在线精品| 久久久精品久久久久特色影视 | 久久99精品国产99久久| 日本精品视频在线观看| 老汉精品免费AV在线播放| 久久精品国产精品亚洲下载 | 国产精品青青在线观看爽香蕉| 在线涩涩免费观看国产精品|