Node.js讀取文件內(nèi)容示例
Node.js讀取文件內(nèi)容包括同步和異步兩種方式。
1、同步讀取,調(diào)用的是readFileSync
var rf=require("fs");
var data=rf.readFileSync("test","utf-8");
console.log(data);
console.log("READ FILE SYNC END");
輸出結(jié)果,先內(nèi)容,后end

2、異步讀取,調(diào)用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");
輸入結(jié)果先end,后內(nèi)容

同步式讀取文件的方式比較容易理解,將文件名作為參數(shù)傳入 fs.readFileSync 函數(shù),阻塞等待讀取完成后,將文件的內(nèi)容作為函數(shù)的返回值賦給 data 變量,接下來(lái)控制臺(tái)輸出 data 的值,最后輸出 end。
異步式讀取文件就稍微有些違反直覺(jué)了,end先被輸出。要想理解結(jié)果,我們必須先知道在 Node.js 中,異步式 I/O 是通過(guò)回調(diào)函數(shù)來(lái)實(shí)現(xiàn)的。fs.readFile 接收了三個(gè)參數(shù),第一個(gè)是文件名,第二個(gè)是編碼方式,第三個(gè)是一個(gè)函數(shù),我們稱(chēng)這個(gè)函數(shù)為回調(diào)函數(shù)。
JavaScript 支持匿名的函數(shù)定義方式, 譬如例子中回調(diào)函數(shù)的定義就是嵌套在fs.readFile 的參數(shù)表中的。
上面異步讀取readFile中的參數(shù)回調(diào)函數(shù)可以拿出來(lái)。
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 調(diào)用時(shí)所做的工作只是將異步式 I/O 請(qǐng)求發(fā)送給了操作系統(tǒng),然后立即返回并執(zhí)行后面的語(yǔ)句,執(zhí)行完以后進(jìn)入事件循環(huán)監(jiān)聽(tīng)事件。當(dāng) fs 接收到 I/O 請(qǐng)求完成的事件時(shí),事件循環(huán)會(huì)主動(dòng)調(diào)用回調(diào)函數(shù)以完成后續(xù)工作。
整個(gè)項(xiàng)目文件路徑如圖所示。tes為要讀取的文件。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- node.js?readline和line-reader逐行讀取文件方法
- node.js讀取命令行參數(shù)詳解
- node.js通過(guò)url讀取文件
- node.js使用fs讀取文件出錯(cuò)的解決方案
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫(xiě)入文件流的方法
- Node.js中讀取TXT文件內(nèi)容fs.readFile()用法
- node.js讀取Excel數(shù)據(jù)(下載圖片)的方法示例
- Node.js readline 逐行讀取、寫(xiě)入文件內(nèi)容的示例
- 教你用十行node.js代碼讀取docx的文本
- node.js讀取文件到字符串的方法
- node.js實(shí)現(xiàn)逐行讀取文件內(nèi)容的代碼
- node.js生成與讀取csv文件方法詳解
相關(guān)文章
Node.js學(xué)習(xí)之內(nèi)置模塊fs用法示例
這篇文章主要介紹了Node.js學(xué)習(xí)之內(nèi)置模塊fs用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js內(nèi)置模塊fs的基本功能、用法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01
node.js中的fs.utimesSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.utimesSync方法使用說(shuō)明,本文介紹了fs.utimesSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node在Controller層進(jìn)行數(shù)據(jù)校驗(yàn)的過(guò)程詳解
這篇文章主要給大家介紹了關(guān)于Node在Controller層進(jìn)行數(shù)據(jù)校驗(yàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
詳解本地Node.js服務(wù)器作為api服務(wù)器的解決辦法
本篇文章主要介紹了詳解本地Node.js服務(wù)器作為api服務(wù)器的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
詳解node登錄接口之密碼錯(cuò)誤限制次數(shù)(含代碼)
這篇文章主要介紹了nodejs登錄接口之密碼錯(cuò)誤限制次數(shù)(含代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Node.js實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了Node.js實(shí)現(xiàn)發(fā)送郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
解決node-webkit 不支持html5播放mp4視頻的方法
本文給大家分享的是解決node-webkit 不支持html5播放mp4視頻的方法,其原因大概是因?yàn)閚ode-webkit沒(méi)有購(gòu)買(mǎi)mp4格式的專(zhuān)利授權(quán),恩,我們來(lái)想個(gè)辦法來(lái)解決這個(gè)事情吧。2015-03-03

