1利凑、異步式讀取文件
代碼:
//readfile.js
var fs = require('fs');
fs.readFile('test.txt', 'utf-8', function(err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
}
});
console.log('end.');
解析:
1.1 引入fs 文件模塊
require('fs');
1.2 調(diào)用fs模塊的readFile 方法
fs.readFile();
**注意:這里要建一個(gè)test.txt 文件,否則在執(zhí)行讀取的時(shí)候會(huì)報(bào)找不到該文件
效果如下:
代碼解析
這里為什么這里是先打印
end 后再打印
I am a text 呢
因?yàn)檫@是異步式嫌术,也就是說哀澈,fs.readFile()方法調(diào)用完后,還沒等完全執(zhí)行完度气,程序就跑到了
console.log(‘end’)這句代碼割按,所以后面面讀取的內(nèi)容事件循環(huán)會(huì)主動(dòng)調(diào)用fs.readFile()是最后打印。
那如果想先打印文件內(nèi)容磷籍,然后載打印end呢适荣。請(qǐng)看接下來下面介紹。
2院领、同步式讀取文件
var fs = require('fs');
var data = fs.readFileSync('test.txt','utf-8');
console.log(data);
console.log('end');
結(jié)果:
解析:
這里是等待函數(shù)完全執(zhí)行完弛矛,以及返回?cái)?shù)據(jù)之后,再執(zhí)行下面的語句栅盲,阻塞等待完成后繼續(xù)執(zhí)行下面的語句汪诉。