Bootstrap

node:文件写入数据(readFile、writeFile),覆盖与增量两种模式

介绍

  1. 使用 node 的 fs 模块中异步 writeFile方法;或者同步 writeFileSync方法;
  2. 写入文件(异步的fs.writeFile和同步的fs.writeFileSync)
    fs.writeFile(file, data[, options], callback)
    
    file - 文件名或文件描述符。
    data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
    options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’
    callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
  3. 读取文件(异步的 fs.readFile() 和同步的 fs.readFileSync())
    fs.readFile(filename[, options], callback)
    

使用(以异步举例,同步则是以一个变量接收且无回调函数)

  1. 覆盖写入;(执行一次函数则文件内容置空,然后再写入)

    const fs = require('fs');
    const data = {
    	name: 'zs'
    };
    const wirte = (data) => {
    	return data
    };
    fs.writeFile("./end.js", `const a = ${JSON.stringify(wirte (data))}`, err => {
      if (err) console.log('文件写入失败!' + err.message)
      console.log(`文件写入成功!:${__dirname}\\end.js`)
    })
    

    在这里插入图片描述
    在这里插入图片描述

  2. 增量模式写入(保留之前的数据继续写入)
    增量模式需要使用到fs的读取文件(fs.readFile);读取完毕后再次拼接写入;

    const fs = require('fs');
    const data = {
    	name: 'zs'
    };
    const  wirte = (data) => {
    	return data
    }
    fs.readFile('./end.js', 'utf8', function(err, info) {
      if (err) console.log('文件读取失败!' + err.message)
      console.log(`文件读取成功!`,info)
      fs.writeFile("./end.js", `${info};const time${new Date().getTime()} = ${JSON.stringify(wirte(data))}`, err => {
        if (err) console.log('文件写入失败!' + err.message)
        console.log(`文件写入成功!${__dirname}\\end.js`)
      })
    });
    

参考资料

  1. 菜鸟教程(node中文版官网需要VIP-199RMB,贫穷的我选择放弃)
;