node 文件的同步、异步写入

文件系统
    (1)通过node来操作系统中的文件
    (2)使用前要先引入fs核心模块,直接require引入,无需下载

操作文件系统两种方式
    同步文件系统会阻塞程序,除非操作完成,不会执行下面代码
    异步文件系统不会阻塞程序,而是在操作完成后通过回调函数返回结果

文件的同步写入
    (1)fs.openSync(path,flags,mode)返回一个文件特殊值,可通过返回值对文件进行操作
      path:路径
      flags:打开文件操作的类型
        'r':只读
        'w':只写
      mode:文件权限,一般针对linux,可不写
    (2)fs..writeSync(文件特殊值,'写入内容',距离首部距离数值/可选,'字符编码格式默认为utf-8'/可选);
    (3)fs.closeSync(文件特殊值);  //保存并关闭文件,减小服务器开销,否则会一直占用服务器

    以追加方式
    fs.appendFileSync(路径,'内容');


文件的异步写入
    (1)fs.open(路径,文件操作类型,回调函数function(err,fd){
    回调函数有两个参数,err错误对象,没有为null,fd文件描述符
        可通过arguments查看
    });
         'r':只读
         'w':只写   //没有文件会自动创建一个文件

注意:**必须在打开函数的回调函数中写**
   (2)fs.write(文件描述符,'内容',距首部位置数值/可选,编码格式/可选,回调函数
   (错误对象,写入字节数,内容))   
   (3)fs.close(文件描述符,回调函数(err错误对象))

   以追加方式
   appendFile(路径,'内容',回调函数);

代码示例:

var fs=require('fs');
//var fd=fs.openSync('C:/Users/10853/Desktop/td.txt','w');
//fs.writeSync(fd,'天气好',20);
//fs.closeSync(fd);

fs.open('C:/Users/10853/Desktop/td.txt','w',function(err,fd){
    if(!err)
    {
       fs.write(fd,'yeyeyye',function(err){
           if(!err)
           {
               console.log('ok');
           }
           fs.close(fd,function(err){
               if(!err)
               {
                   console.log('成功关闭');
               }
           })
       })
    }
})

发布了317 篇原创文章 · 获赞 3 · 访问量 7115

猜你喜欢

转载自blog.csdn.net/weixin_43294560/article/details/104107496
今日推荐