node 读写文件

235 阅读1分钟

node 读文件

异步读取

    /**
     * @param {string} path
     * @param {string} ecoding 
     * @param function 
     * @return void
     */
    fs.readFile('1.js','ut8',(err,data)=>{
        console.log(data)    
    })

同步

    /**
     * @param {string} path
     * @param {string} ecoding 
     * @return void
     */
    fs.readFileSync('1.js','ut8');

node 写文件

同步写

  /**
     * @param {string} path
     * @param {Buffer} any
     * @param {Object} flag
     * @return void
     */
    fs.writeFileSync('1.js',buffer,flag);

异步写文件

    /**
     * @param {string} path
     * @param {Buffer} any
     * @param {Object} flag
     * @param {function} 
     * @return void
     */
    fs.writeFile('1.js',buffer,{ecoding:'utf8',mode:'0o666'},(err,data)=>{
        console.log(data)    
    })

打开文件

    /**
     * @param {string} path
     * @param {string} flag // 用什么方式打击开文件
     * @param {string} mode // 操作权限
     * @param {function} 
     * @return void
     */
    fs.open(path,flag,mode,callback)

向文件中写入内容

 // fd, 使用fs.open打开成功后返回的文件描述符
  // offset, 整数,从缓存区中读取时的初始位置,以字节为单位
 // length, 整数,从缓存区中读取数据的字节数
 // position, 整数,写入文件初始位置;
    fs.open('1.js','w',(err,wfd)=>{
        // 申请一段内存
        let buffer = Buffer.from('帅比');
        // fd buffer offset 
        let offset =0;
        let length =6; 
        let position=0
        fs.write(wfd,buffer,offset,length,position,cb )
        // fs.fsync() //更新内存
    })

文件拷贝

    function copy(source,target){
        const BUFFER_SIZE=3;
        const position =0;
        fs.open(source,'r',(err,rfd)=>{
            fs.open(target,'w',(err,wfd)=>{
                let buffer = Buffer.alloc(3);
               function next(){
                    fs.read(rfd,buffer,0,BUFFER_SIZE,position,(err,byteRead)=>{
                    position =position+byteRead
                    if(byteRead>0){
                        fs.write(wfd,byteRead,0,null,()=>{
                            next()
                        })
                    }else{
                        fs.close(rfd,()=>{});
                        fs.fsync(wfd,()=>{});
                    }
                })
               }
            })
        })
    }
    copy('1.js','2.js')