• Node基础2


    fs文件模块

    • 文件读写

    • 其他功能

    • 扩展介绍

    // 引入核心对象 fs
    const fs = require('fs');
    
    //读取文件     回调函数,文件存不存在err=>Error||null
    fs.readFile('./01.txt','utf8',(err,data)=>{
        if (err) throw err; // 抛到控制台显示异常信息
        // console.log(data);
        // 需要获取字符串数据,就可以调用 buffer篮子.toString(编码)函数
        // console.log(data.toString('utf8'));  默认urf8可以不传递
        console.log(data); 
    });

    // I or O?
    // I input 计算机来说,就是输入
    // O output 计算机来说 ,展现/写入数据就是输出,
    // fs.writeFile(path,data||string,callback);

     

    写文件:

    //引入核心对象fs
    const fs = require('fs');
    
    fs.writeFile('./01.txt','我今天赚了2块钱',(err)=>{
      // window中目录层级超级深的时候,写入会报错
      if(err) throw err;
      console.log('写文件完成了');
    });

    这样不会追加写

    追加方式一:appendFile('path',data,callback);

    //引入核心对象fs
    const fs = require('fs');
    
    //追加方式1: appendFile('path',data,callback);
    fs.appendFile("./01.txt",:"我今天赚了一块钱",(err)=>{
        if(err) throw err;
        console.log("文件追加成功!");
    });

    追加方式二:

    fs.writeFile('./01.txt','我今天赚了2块钱', {flag:'a'},(err)=>{
    
      if(err) throw err;
      console.log('写文件完成了');
    });

    操作文件对象

    • IO

      • I :input输入

      • O:output 输出

      • 文件的操作就是IO

    • 复制文件的过程, I: 通过计算机,存储文件到剪切板

      • 粘贴到指定目录: O: 通过计算机,将剪切板上的数据,写出到 指定目录

    • node中有两种IO的操作

      • 同步IO

        • 一行代码(读文件)不执行完毕...后续代码不能执行

      • 异步IO (建议)

        • 一行代码(读写文件) 不执行完毕(正在读写中) ... 后续代码也可以执行

      • 代码体验:

        • 读写文件

        • const fs = require('fs'); //必须这个名称
          //读 fs.readFile(路径,回调函数);
          //写 fs.writeFile(路径,数据,回调函数);
        • 总结: 异步的读/写文件 参数1:都是路径,可以相对可以绝对,最后一个参数都是回调函数,回调函数的参数中错误对象优先

     

    • 同步和异步IO的区别: 同步IO会阻塞后续代码执行,异步IO不会阻塞后续代码执行

     

    //引入核心对象fs
    const fs = require('fs');
    
    // 先读后写(有异常catch) 
    let data = fs.readFileSync('./01.txt',"utf8");
    console.log(data);
    //写入02.txt
    
    fs.writeFileSync('./02.txt',data);
    console.log("文件复制成功")

    同步异步:

    const mypath = 'C:/Users/Administrator/Desktop/Node、Vue视频/19课 md、http收尾(2018.5.17).mp4'
    const fs = require('fs');
    
    
    console.log('同步读取前..');
    fs.readFileSync(mypath);
    console.log('工作A...');
    console.log('读取成功了');
    
    
    console.log('异步读取前..');
    // // 异步读取
    fs.readFile(mypath,()=>{
      console.log('异步读取后..');
    });
    console.log('工作B...');  

     js代码中,同步代码优先执行,执行完毕以后,再去做异步ID,完了子线程执行 回调函数。

    文件读写IO的优势:

    03_天猫应用图解

  • 相关阅读:
    c++ 队列
    17:特殊类成员:函数指针5
    c++ deque 双端队列
    18:字符串-char型字符串
    c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数
    c++ string char* const char*
    c++ 小片段
    google protobuf 使用示例
    hibernate-cache
    hibernate-criteria查询(二)
  • 原文地址:https://www.cnblogs.com/proper128/p/11747550.html
Copyright © 2020-2023  润新知