Skip to main content

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'));