• Node.js学习篇(一)利用fs引入文件和写入或修改文件以及path


    知识点:
    fs.readFile读取
    fs.writeFile写入

    1.创建文件

    在这里插入图片描述

    2.使用fs.readFile读取files的1.txt

    //1.导入fs模块
    const fs = require('fs')
    // 2.fs.readFile读取文件
    //参数1 读取编码的文件路劲
    //参数2 读取文件的编码格式
    //参数3 读取回调函数
    fs.readFile('./files/1.txt', 'utf8', (err, res) => {
        // 如果读取成功则Err为Null
        if (err) {
            return console.log('读取文件失败', err.message)
        }
        return console.log('读取文件成功', res)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    打开终端运行js
    在这里插入图片描述

    3.使用fs.writeFile写入2.txt

    //1.导入fs模块
    const fs = require('fs')
    // fs.writeFile写入文件
    fs.writeFile('./files/2.txt', 'ok123',  (err)=> {
        if (err) {
            return console.log('读取文件失败', err.message)
        }
        console.log('文件写入成功!', res)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    在这里插入图片描述

    4.先fs.readFile读取在fs.writeFile写入

    在这里插入图片描述
    条件:把上面的成绩分割,=号替换成: ,并换行

    const fs = require('fs')
    
    fs.readFile('./files/成绩.txt', 'utf8', (err, res) => {
        // 如果读取成功则Err为Null
        if (err) {
            return console.log('读取文件失败', err.message)
        }
        // console.log('读取文件 成功', res)
        // 按照空格分割成数组
        const arrOld = res.split(' ')
        const arrNew = []
        // 循环把=换成:
        arrOld.forEach(item => {
            arrNew.push(item.replace('=', ':'))
        })
        //进行合并
        const newStr = arrNew.join('\r\n')
        console.log(newStr)
    
        // 写入新文件
        fs.writeFile('./files/2.txt', newStr, (err) => {
            if (err) {
                return console.log('读取文件失败', err.message)
            }
            return console.log('成绩写入成功!')
        })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述

    5.动态获取路径

    原路径使用./引入

    fs.readFile('./files/成绩.txt', 'utf8',
    
    • 1

    改成动态获取,使用__dirname

    const fs = require('fs')
    //__dirname+'/files/1.txt'也可以 path.join(__dirname, '/files/1.txt')
    //用path.join(__dirname, '/files/1.txt')好点
    fs.readFile(path.join(__dirname, '/files/1.txt'), 'utf8', (err, res) => {
        if (err) {
            return console.log('读取文件失败', err.message)
        }
        console.log('读取成功', res)
    })
    console.log(__dirname)
    //__dirname就是获取当前文件所在路劲
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    6.获取文件路径

    const path = require('path')
    const fpath = './a/c/v/d.html'
    const fext = path.extname(fpath)
    console.log('获取文件名+扩展名',path.basename(fpath))
    console.log('获取文件名',path.basename(fpath,'.html'))
    console.log('获取文件扩展名',fext)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    ssl 层在握手阶段报错 mbedtls_ssl_handshake returned -0xffff8880
    相比SiteGPT,用HelpLook创建Chatbot有哪些优势?
    前端研习录(36)——ES6 字符串扩展及新增方法讲解及示例分析
    女性必看——“黄体破裂”到底有多可怕?
    [附源码]计算机毕业设计JAVA校园快递管理系统
    deque容器(20221115)
    CopyOnWriteArrayList源码分析
    蓝桥杯每日一题2023.11.21
    SystemVerilog Assertions应用指南 Chapter1.40SVA与功能覆盖
    leetcode 刷题 log day 48(打家劫舍问题
  • 原文地址:https://blog.csdn.net/hql1024/article/details/125459242