需要近期研究的项目

nodejs fs 内置模块

2022-01-18  本文已影响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

上一篇 下一篇

猜你喜欢

热点阅读