1.阻塞. 同步.

 

 1) 读取的文件: input.txt

菜鸟教程官网地址:www.runoob.com

 

2) main.js

1 var fs = require("fs");
2 
3 //同步读取, 阻塞代码,按顺序执行的
4 var data = fs.readFileSync('input.txt');
5 
6 console.log(data);
7 console.log(data.toString());
8 console.log("程序执行结束!");

 

 执行:

 

注意:

 第一:绿色方框的是 输出 data.     可见 不可以直接输出读取的文件,  要使用  data.toString()

第二: 阻塞执行 ,是同步的, 按照顺序的.

 

 

 

 如果指定 字符集.

1 var fs = require("fs");
2 
3 //同步读取, 阻塞代码,按顺序执行的
4 var data = fs.readFileSync('input.txt', 'utf8');
5 console.log(data);
6 console.log(data.toString());
7 console.log("程序执行结束!");

执行:

 

 

 

 

 

2. 非阻塞 ,异步:

 

1) 要读取的文件 .   input.txt

菜鸟教程官网地址:www.runoob.com

 

2) main.js

 1 var fs = require("fs");
 2 
 3 //同步读取, 阻塞代码,按顺序执行的
 4 // var data = fs.readFileSync('input.txt');
 5 // console.log(data);
 6 // console.log(data.toString());
 7 // console.log("程序执行结束!");
 8 
 9 //异步读取, 阻塞, 不是按照顺序.
10 fs.readFile("input.txt", function(err, data){
11     //err:
12     console.log("err:", err);
13     if (err) {
14         return console.error(err);
15     };
16     console.log(data);
17 
18     console.log(data.toString());
19 });
20 
21 console.log("程序执行结束!");

 

执行:

 

 

 -----------------

如果指定 字符集.

var fs = require("fs");

//同步读取, 阻塞代码,按顺序执行的
// var data = fs.readFileSync('input.txt');
// console.log(data);
// console.log(data.toString());
// console.log("程序执行结束!");

//异步读取, 阻塞, 不是按照顺序.
// fs.readFile("input.txt", function(err, data){
//     //err:
//     console.log("err:", err);
//     if (err) {
//         console.error(err);
//     };
//     console.log(data);

//     console.log(data.toString());
// });

// console.log("程序执行结束!");

fs.readFile("input.txt","utf8", function(err, data){
    //err:
    console.log("err:", err);
    if (err) {
        return console.error(err);
    };
    console.log(data);

    console.log(data.toString());
});

console.log("程序执行结束!");

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考链接:

  Node.js 回调函数