Node模块---(五)系统模块(fs)文件写入的操作

206 阅读1分钟

第一步:引入fs系统模块

const fs = require('fs'); //变量起名尽量与系统模块名一致

♥异步写入文件:

关键词:writeFile;
语法:fs.writeFile(文件路径,写入内容,callback)
       ❀回调函数参数只能有一个表示写入失败

实例:

 fs.writeFile('./01.txt', '林寒--加油~', (err) => {
         if (err) { //写入失败---文件路径错误,不存在该目录才报错
             console.log(err)
         }
         console.log('写入成功~~')
     })
     
❀利用promise优化异步写入文件
  //这里直接引入require的属性promises的方法,之前参考上一章readFile读文件的方法,写法类似
   const fsPromise = require('fs').promises;
   fsPromise.writeFile('01.txt', 'linhan')
             .then(() => { console.log('写入成功') })
             .catch((err) => { console.log(err) });

❀写入对象和数组,或同时写入的方法:

    const obj = { a: 1, b: 3 };//声明对象
    const arr = [1, 2, 3, 4];//声明数组
    //将数组和对象利用JSON.stringify()转换为模板字符串存入
    const str = `const myObj = ${JSON.stringify(obj)};
    const arra = ${JSON.stringify(arr)}; `
    //使用promises方法,第二个参数传str
    const fsPromise = require('fs').promises;
    fsPromise.writeFile('04.js', str)
            .then(() => { console.log('写入成功') })
            .catch((err) => { console.log(err) });
            

❀文件追加:APPendFile方法,将写入内容追加在原来文件的后面,不覆盖

  fsPromise.appendFile('04.js', 'console.log(555)')
            .then(() => { console.log('写入成功') })
            .catch((err) => { console.log(err) })


  ❀❀❀  // 总结: 
        // 写文件成功有两层含义:
        //     ① 有这个文件, 才会往这个文件写入内容, 并覆盖原内容
        //     ② 没有这个文件, 会在本级目录下创建, 并写入内容
        // 写入失败的情况:
        //     文件路径中右不存在的目录,原因是node可以生成文件,但不可以生成目录/文件夹
        // 写入的内容只能是字符串,别的类型需要先转成字符串