nodejs fs 内置模块

作者: 暴躁程序员 | 来源:发表于2022-01-18 22:06 被阅读0次
fs.png

1. readFile 读取文件数据

语法
异步读取:fs.readFile(目标文件绝对路径 , 回调函数)
同步读取:fs.readFileSync(目标文件绝对路径 , 默认utf-8编码)

注意:读取的内容是二进制数据,可使用 .toString() 转化成字符串进行查看

const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
// 异步读取
fs.readFile(fileName, (err, data) => {
    if (err) {
        console.error(err)
        return
    }
    console.log(data.toString())  // data 是二进制类型,需要转换为字符串
})
// 同步读取
const readResult = fs.readFileSync(fileName, "utf8")
console.log(readResult);

2. writeFile 写入文件数据

语法
异步写入:fs.writeFile(目标文件绝对路径 , 写入的数据 , 下方opt参数 , 回调函数)
同步写入:fs.writeFileSync(目标文件绝对路径 , 写入的数据 , 下方opt参数)

  1. 写入的数据必须是基础类型数据或buffer二进制数据,若是引用类型,建议使用 JSON.stringify() 转JSON字符串
  2. 如果找不到写入文件,会自动创建文件
  3. opt参数(不写此参数,默认覆盖,即 w)


    image.png
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
const content1 = '写入基础类型数据\n'
const content2 =  {
    name : '写入对象'
}
const opt = {
    flag: 'a' // 追加写入用 'a'。覆盖用 'w'
}
// 异步写法
fs.writeFile(fileName, content1, opt, (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('写入成功1');
})
// 同步写法
fs.writeFileSync(fileName, content1, opt)
// 没有文件,创建文件
fs.writeFile('./write.txt', content1, opt, (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('写入成功2');
})
// 写入引用类型数据
fs.writeFile(fileName, content2, opt, (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('写入成功3');
})

3. appendFile 追加写入

语法
异步写入:fs.appendFile(目标文件绝对路径 , 写入的数据 , 下方opt参数 , 回调函数)
同步写入:fs.appendFileSync(目标文件绝对路径 , 写入的数据 , 下方opt参数)
初测和writeFile没啥区别,只是如果不写opt参数,默认是追加,即 a

const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
const content = '写入基础类型数据\n'
const opt = {
    flag: 'a' // 追加写入用 'a'。覆盖用 'w'
}
// 异步写法
fs.appendFile(fileName, content, opt, (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('追加成功');
})
// 同步写法
fs.appendFileSync(fileName, content, opt)

4. 文件拷贝

语法
异步写入:fs.copyFile(被拷贝文件绝对路径 , 拷贝到目标文件路径 , 回调函数)
同步写入:fs.copyFileSync(被拷贝文件绝对路径 , 拷贝到目标文件路径)

  1. 拷贝到的目标文件不存在,会自动创建文件
  2. 也可以用 读取和写入方法联合实现拷贝
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径

// 异步写法
fs.copyFile(fileName, './msg1.txt', (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('拷贝成功');
})

// 同步写法
fs.copyFileSync(fileName, './msg2.txt')

5. 判断文件是否存在

语法: fs.exists(文件路径 , 回调函数)

fs.exists(fileName, (res) => {
    console.log(res)
})

总结

除此之外还有
大文件读写操作
文件目录增删改成等操作
建议参考:https://blog.csdn.net/github_38140984/article/details/83006101

相关文章

  • nodejs-模块

    nodejs模块 一、nodejs模块分类 1.核心模块 Core Module、内置模块、原生模块 fs模块 p...

  • nodejs fs 内置模块

    1. readFile 读取文件数据 语法异步读取:fs.readFile(目标文件绝对路径 , 回调函数)同步读...

  • fs的核心模块及方法

    fs的核心模块及方法 fs模块(http://nodejs.cn/api/)

  • 6_Node 文件系统

    [toc] NodeJS 文件系统[fs 模块] 1.NodeJS 文件系统 NodeJS 文件系统被封装在fs模...

  • nodejs学习笔记

    参考 模块化 内置模块文件管理(fs)fs.readdirSync() //同步读取文件夹fs.readir() ...

  • nodejs

    cannot find module fs/promises 在模块中,旧版nodejs是require("fs"...

  • node模块

    node 模块 内置模块http ( creatServer)fs (resdFileSync,writeFile...

  • node js(四)

    fs模块 fs概述 -在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删...

  • 3-廖雪峰-node-fs模块

    fs文件读取模块 Node.js内置的fs模块就是文件系统模块,负责读写文件。 和所有其它JavaScript模块...

  • vue-cli脚手架基础实现

    commander chalk Inquirer.js nodejs fs、net模块

网友评论

    本文标题:nodejs fs 内置模块

    本文链接:https://www.haomeiwen.com/subject/omcmcrtx.html