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 變量,接下來控制臺輸出 data 的值,最后輸出 end。
異步式讀取文件就稍微有些違反直覺了,end先被輸出。要想理解結(jié)果,我們必須先知道在 Node.js 中,異步式 I/O 是通過回調(diào)函數(shù)來實現(xiàn)的。fs.readFile 接收了三個參數(shù),第一個是文件名,第二個是編碼方式,第三個是一個函數(shù),我們稱這個函數(shù)為回調(diào)函數(shù)。
JavaScript 支持匿名的函數(shù)定義方式, 譬如例子中回調(diào)函數(shù)的定義就是嵌套在fs.readFile 的參數(shù)表中的。
上面異步讀取readFile中的參數(shù)回調(diào)函數(shù)可以拿出來。
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)用時所做的工作只是將異步式 I/O 請求發(fā)送給了操作系統(tǒng),然后立即返回并執(zhí)行后面的語句,執(zhí)行完以后進入事件循環(huán)監(jiān)聽事件。當 fs 接收到 I/O 請求完成的事件時,事件循環(huán)會主動調(diào)用回調(diào)函數(shù)以完成后續(xù)工作。
整個項目文件路徑如圖所示。tes為要讀取的文件。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- node.js?readline和line-reader逐行讀取文件方法
- node.js讀取命令行參數(shù)詳解
- node.js通過url讀取文件
- node.js使用fs讀取文件出錯的解決方案
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法
- Node.js中讀取TXT文件內(nèi)容fs.readFile()用法
- node.js讀取Excel數(shù)據(jù)(下載圖片)的方法示例
- Node.js readline 逐行讀取、寫入文件內(nèi)容的示例
- 教你用十行node.js代碼讀取docx的文本
- node.js讀取文件到字符串的方法
- node.js實現(xiàn)逐行讀取文件內(nèi)容的代碼
- node.js生成與讀取csv文件方法詳解
相關(guān)文章
關(guān)于Node.js中頻繁修改代碼重啟服務器的問題
這篇文章主要介紹了關(guān)于Node.js中頻繁修改代碼重啟服務器的問題,本文給大家分享解決辦法,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10