文件操作

异步I/O ( input/output)
1, 文件操作;
2, 网络操
作js的运行是单线程的,引入事件队列机制
Node.js中的事件模型与浏览器中的事件模型类似 单线程+事件队列
nodejs中异步执行任务:
1, 文件I/O
2, 网络I/O
文件操作

const fs=require('fs');
const path=require('path');
console.log('=====');
fs.stat('abc',(err,stat)=>{   
   // 一般回调函数的第一个参数是错误对象,   
   // 如果err为null,表示没有错误,否则错误   
   if(err)return;    
   if(stat.isFile()){     
          console.log('文件');    
    }else if(stat.isDirectory()){      
          console.log('目录');   
    }      
    console.log(stat.atime);      
    // console.log(err);
    // null  表示没有错误
    })
    // stats.isFile()  是否为文件
    // stats.isDirectory()  是否为目录
    //atime: 文件访问时间
    //ctime: 文件的状态信息发生变化的时间  
    //mtime: 文件数据发生变化的事件 
    //birthtime: 文件创建的时间 
    // 同步操作
    let ret=fs.statSync('data.txt');
    console.log(ret);
    //读文件内容
    let strpath1=path.join(__dirname,'data.txt');
    fs.readFile(strpath,(err,data)=>{
        if(err)return;    
        console.log(data.toString());
     })
     console.log(strpath);
     let rr=fs.readFileSync(strpath1,'utf-8');
     console.log(rr);
     //写文件
     //加载fs模块
     const fs=require('fs');
     加载path模块
     const path=require('path');
     let strpath=path.join(__dirname,'data.txt');
     fs.writeFile(strpath,'hello',(err)=>{    
     if(!err){          
     console.log('yes');    
     }
     })
     let bb=Buffer.from('java');
     fs.writeFile(strpath,bb,(err)=>{      
     if(!err){            
     console.log('yes');      
     }
 })

你可能感兴趣的:(文件操作)