node中的文件操作,读取文件、写入文件、删除文件

读取文件

基础语法 文档地址

//文件读取功能,依赖fs模块,不需要安装,属于node的内置模块

const fs = require('fs')

// 同步写法

const textAsync = fs.readFileSync('./text1.txt',{
  encoding:'utf-8',
  // flag:"r"
})
console.log(textAsync ,'-1-');

// 异步写法 需要传入回调函数

fs.readFile('./text1.txt',{
  encoding:'utf-8',
  // flag:"r"
},(err,data)=>{
  if (err) {
    return console.log(err);
  }
  console.log(data,'-2-');
})


console.log('-2-',);

/*
输出:
text2 -1-
-2-
text2 -2-
*/

封装为Promise形式的写法

封装
const fs = require('fs')

const fsRead = (path) => new Promise((resolve, reject) => {
  fs.readFile(path,{
    encoding:'utf-8'
  },(err,data)=>{
    if (err) {
      return reject(err)
    }
    resolve(data)
  })
})

exports = {
  fsRead
}
使用
const { fsRead } = require('./my_fs')

const ReadText = async () => {
  let text = await fsRead('./text1.txt')
  console.log(text);
}
ReadText()
console.log('我先执行');

/*
输出

我先执行
text2
*/

写入文件

基础写法

const fs = require('fs')
/**
 * 参数说明
 * 参数1 文件路径(path),当文件存在时写入,文件不存在时创建文件后写入
 * 参数2 写入的内容(content)
 * 参数3 选项(options) , {encoding:编码格式,falg : w (默认值 , 覆盖写入)a(追加写入) 其他见文档说明 }
 * 参数4 callback
 */

// 异步写入
fs.writeFile('./newText.txt', '我是异步插入的新内容', { encoding: "utf-8" ,flag:'a'}, (err, data) => {
  if(err) return console.log(err);
  console.log('写入成功');
})
// 同步写入
fs.writeFileSync('./newText.txt', '我是同步插入的新内容', { encoding: "utf-8" ,flag:'a'})

封装成promise形式的写法

const fs = require('fs')

// 定义新函数 writeFs
const writeFs = (path, content, { encoding, flag } = { encoding: "utf-8", flag: 'a' }) => new Promise((resovle, reject) => {
  fs.writeFile(path, content, { encoding, flag }, (err, data) => {
    if (err) return reject(err);
    resovle(data);
  })
})

const writeList = async () => {
  await writeFs('newtext1.txt', '新内容1');
  await writeFs('newtext2.txt', '新内容2');
  await writeFs('newtext3.txt', '新内容3');
  await writeFs('newtext4.txt', '新内容4');
  console.log('全部写入完毕');
}
writeList()

删除文件 谨慎操作

fs.unlink('./text1.txt',()=>{
  console.log('删除成功');
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值