嗨~你好我是 Robin ~ 這篇要分享的是以串流
的方式讀寫檔案
上一篇主要以非串流
的方式讀寫檔案(也就是緩衝
的方式)。
開始之前先簡單用一個例子提一下什麼是串流
串流
就像以下的圖,在每個時間點一接受到東西,就先丟出去給另一端。
對比而言緩衝
則是相反,所有東西準備好了再一次丟。
而串流
有什麼好處?
最大的好處就是空間的使用效率。
當我們使用緩衝
時,假使檔案很大,比如說來個20GB,那你的記憶體就需要20GB來儲存這些東西,那想必記憶體就會...
這邊會用到之前學過的一個東西是EventEmiter(https://ithelp.ithome.com.tw/articles/10230520) 還不知道的可以先看一下~
const fs = require('fs');
let result = '';
const reader = fs.createReadStream('readme.txt');
reader.setEncoding('UTF8');
reader.on('data', function(data) {
console.log(data);
result += data;
});
reader.on('end', function() {
console.log(result);
});
建立一個檔案叫做 fsWriteStream.js
const fs = require('fs');
const outputdata = 'Robin~~~~~~~~~~~~~~~~~~~~~~';
const writerStream = fs.createWriteStream('output.txt');
writerStream.write(outputdata, 'UTF8');
writerStream.end();
writerStream.on('finish', function() {
console.log('');
});
writerStream.on('error', function(err) {
console.log(err.stack);
});
就可以在目錄看到產生的 output.txt
內容就是剛剛寫的 Robin~~~
。
此篇到此。
希望有幫助到想初步了解 node file system 的你~
有問題可以底下留言~