node使用buffer分段完整读写复制文件

151 阅读1分钟

来源: 拉钩 Node.js 全栈开发 课程

//完整数据读写
let buf = Buffer.alloc(10)
let bufSize = buf.length
let offsetIndex = 0
fs.open(path.join(__dirname,'a.txt'), 'r', (err, rfd) => {
    fs.open(path.resolve('b.txt'), 'w',(err, wfd) => {
        function next( ) {
            fs.read(rfd, buf, 0, bufSize, offsetIndex, (err,readBytes) => {
                if(!readBytes){  //说明内容为空 
                    fs.close(rfd, () => {
                        fs.close(wfd, () => { })
                    })
                  return   
                }
                offsetIndex += readBytes
                fs.write(wfd, buf, 0, readBytes, (err,bytesWritten) => {
                    next()
                })
            })
        }
        next()
    })
})