Streams (Streams Intro)
Streams: جریان داده در Node.js 🌊
Streams برای کار با دادههای بزرگ استفاده میشن. به جای خواندن کل فایل در حافظه، داده رو به صورت chunks پردازش میکنیم!
انواع Streams:
- Readable: خواندن داده (مثل fs.createReadStream)
- Writable: نوشتن داده (مثل fs.createWriteStream)
- Duplex: هم خواندن و هم نوشتن
- Transform: تبدیل داده هنگام خواندن/نوشتن
مثال: خواندن فایل با Stream:
const fs = require('fs');
// خواندن فایل بزرگ با stream
const readStream = fs.createReadStream('large-file.txt', 'utf8');
readStream.on('data', (chunk) => {
console.log('Received chunk:', chunk.length, 'bytes');
// پردازش chunk
});
readStream.on('end', () => {
console.log('File reading completed!');
});
readStream.on('error', (err) => {
console.error('Error:', err);
});
نوشتن با Stream:
const fs = require('fs');
// نوشتن فایل با stream
const writeStream = fs.createWriteStream('output.txt');
writeStream.write('Hello, ');
writeStream.write('Node.js!');
writeStream.end(); // بستن stream
writeStream.on('finish', () => {
console.log('Writing completed!');
});
Pipe کردن Streams:
const fs = require('fs');
// Pipe کردن: خواندن از یک فایل و نوشتن در فایل دیگر
const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');
// Pipe کردن
readStream.pipe(writeStream);
writeStream.on('finish', () => {
console.log('File copied!');
});
💡 نکته: Streams برای فایلهای بزرگ عالیه! حافظه کمتری استفاده میکنن!
✅ یاد گرفتید: Streams برای کار با دادههای بزرگ ضروریه!
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.