zoukankan      html  css  js  c++  java
  • 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_天猫应用图解

  • 相关阅读:
    Devrama Slider
    全栈开发必备的10款 Sublime Text 插件
    经典网页设计:使用颜色滤镜效果的20个网站
    Nibbler – 免费的网站测试和指标评分工具
    使用 HTML5 Canvas 绘制出惊艳的水滴效果
    Qt4 和 Qt5 模块的分类
    设计Qt风格的C++API
    Qt属性系统
    Qt实现艺术字效果
    Qt中容器类应该如何存储对象(最好使用对象指针类型,如:QList<TestObj*>,而不要使用 QList<TestObj> 这样的定义,建议采用 智能指针QSharedPointer)
  • 原文地址:https://www.cnblogs.com/proper128/p/11747550.html
Copyright © 2011-2022 走看看