W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
編寫一個程序,執(zhí)行一個異步的對文件系統(tǒng)的操作:讀取一個文件,并且在終端(標準輸出stdout)打印出這個文件中的內容的行數(shù)。類似于執(zhí)行 cat file | wc -l 這個命令。 所要讀取的文件的完整路徑會在命令行第一個參數(shù)提供。
解決這個問題將需要用到Node.js最鮮明的風格的方式:異步。
‘’’fs.readFile()’’’方法可以滿足這個需求,這需要從傳入的回調函數(shù)中去收集數(shù)據(jù)(這些數(shù)據(jù)會作為第二參數(shù)傳遞給回調函數(shù)),而不是使用方法的返回值。
記住,Node.js 回調函數(shù)都有像如下所示的特征:
function callback (err, data) { /* ... */ }
可以通過檢查第一個參數(shù)的真假值來判斷是否有錯誤發(fā)生。如果沒有錯誤發(fā)生,第二個參數(shù)將獲取到一個Buffer對象。和 readFileSync() 一樣,可以傳入 ‘utf8 ‘ 作為它的第二個參數(shù),然后把回調函數(shù)作為第三個參數(shù),這樣,得到的將會是一個字符而不是 Buffer。
var fs = require('fs');
fs.readFile(process.argv[2], function(err,data){
if(err) throw err;
console.log(data.toString().split('\n').length-1);
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: