个人记录贴:Node基础---文件读取

332 阅读1分钟

I/O 文件读写

文件读取

  1. 同步读取 fs.readFileSync

    const fs = require('fs')
    // 同步读取
    // 返回的是Buffer对象,存储二进制信息
    // 1字节Byte=== 8bit(0/1)
    const data = fs.readFileSync('./conf.js')
    console.log('data', data.toString())
    
  2. 异步读取 fs.readFile

    const fs = require('fs')
    // 异步读取
    fs.readFile('./test.js', (err, data) => {
      if (err) throw err
      console.log('data', data.toString())
    })
    
  3. async/await读取(promisify包装)

    // async/await读取
    (async() => {
      const fs = require('fs')
      // util是node自带的工具库
      // 使用promisify将fs.readFile包装成promise风格
      const { promisify } = require('util')
      const readFile = promisify(fs.readFile)
      const data = await readFile('./test.js')
      console.log('data3', data.toString());
    })()
    
    process.nextTick(async () => {
      const fs = require('fs')
      const { promisify } = require('util')
      const readFile = promisify(fs.readFile)
      const data = await readFile('./test.js')
      console.log('data4', data.toString())
    })
    
  4. 文件流steam

    // 复制一个图片
    // 在后面的自定义cli工具,实现下载依赖就会用到此功能
    const fs = require('fs')
    const rs = fs.createReadStream('./1.jpeg') // 源文件流
    const ws = fs.createWriteStream('./1.copy.jpeg')//目标文件流
    rs.pipe(ws)//创建导管复制