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