Stream - 操作處理
Readstream / writestream
音視頻文件讀寫,stream 的概念,不是一次讀寫入全部的檔案內容,而是將其拆成好幾個 chunk,放入 buffer。等到部份的 chunk 讀寫完後,再從 buffer 中抓一些 chunk 出來讀寫
const fs = require ('fs');
const path = require ('path');
const readable = fs.createReadStream (path.join(__dirname, 'sample-1.mp4'), { encoding: null, highWaterMark: 20 * 1024 });
const writable = fs.createWriteStream (path.join(__dirname, 'sample-1-copy.mp4'));
const videoSize = fs.statSync ('sample-1.mp4').size;
readable.on ('data', function (chunk) {
// console.log(chunk);
writable.write(chunk);
});
// or
readable.pipe (writable);
Stream pipe API
使用stream和pipe方式,執行文字檔壓縮寫入
const fs = require ('fs');
const zlib = require ('zlib');
const path = require ('path');
fs.createReadStream('text.txt')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('text.txt.gz'));