zoukankan      html  css  js  c++  java
  • Node.js读取文件内容

    原文链接:http://blog.csdn.net/zk437092645/article/details/9231787

    Node.js读取文件内容包括同步和异步两种方式。

    1、同步读取,调用的是readFileSync

    var rf=require("fs");
    var data=rf.readFileSync("test","utf-8");
    console.log(data);
    console.log("READ FILE SYNC END");

    输出结果,先内容,后end

    2、异步读取,调用readFile

    var rf=require("fs");
    rf.readFile("test",'utf-8',function(err,data){
        if(err){
            console.log("error");
        }else{
            console.log(data);
        }
    });
    console.log("READ FILE ASYNC END");

    输入结果先end,后内容

    同步式读取文件的方式比较容易理解,将文件名作为参数传入 fs.readFileSync 函数,阻塞等待读取完成后,将文件的内容作为函数的返回值赋给 data 变量,接下来控制台输出 data 的值,最后输出 end。

    异步式读取文件就稍微有些违反直觉了,end先被输出。要想理解结果,我们必须先知道在 Node.js 中,异步式 I/O 是通过回调函数来实现的。fs.readFile 接收了三个参数,第一个是文件名,第二个是编码方式,第三个是一个函数,我们称这个函数为回调函数。

    JavaScript 支持匿名的函数定义方式, 譬如例子中回调函数的定义就是嵌套在fs.readFile 的参数表中的。

    上面异步读取readFile中的参数回调函数可以拿出来。

    var rf=require("fs");
    function callBack(err,data){
        if(err){
            console.log("error");
        }else{
            console.log(data);
        }
    }
    rf.readFile("test","utf-8",callBack);
    console.log("READ FILE ASYNC END");

    fs.readFile 调用时所做的工作只是将异步式 I/O 请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件。当 fs 接收到 I/O 请求完成的事件时,事件循环会主动调用回调函数以完成后续工作。

    整个项目文件路径如图所示。tes为要读取的文件。

  • 相关阅读:
    hdu 4332 Constructing Chimney 夜
    poj 2449 Remmarguts' Date 夜
    poj 2728 Desert King 夜
    poj 1639 Picnic Planning 夜
    poj 1125 Stockbroker Grapevine 夜
    poj 3621 Sightseeing Cows 夜
    hdu 4333 Revolving Digits 夜
    hdu 4345 Permutation 夜
    hdu 1874 通畅工程续 夜
    es6(二)
  • 原文地址:https://www.cnblogs.com/gavinyyb/p/6419031.html
Copyright © 2011-2022 走看看