CodeBlanks Logo Icon CodeBlanks

Özet - Stream'ler

Readable, Writable ve pipe'ı birleştirerek bir dosya kopyalama yazarsın.

Özet - Stream'ler

Bu grupta stream'lerin temel araçlarını öğrendin: Readable ile veri okumak, Writable ile veri yazmak, pipe ile akışları bağlamak ve Transform ile veri dönüştürmek.

Şimdi bunları birleştirerek bir dosya kopyalama simülasyonu yazacaksın. Bir kaynak Readable'ı bir hedef Writable'a pipe ile bağlayacaksın; her parça kopyalanır ve akış tamamlandığında mesaj yazılır. Bu mini görev, verinin kaynaktan hedefe nasıl aktığını gösterir.

Kopyalama tasarımı

Kopyalama iskeleti: bir kaynak Readable, bir hedef Writable ve pipe bağlantısı. Kaynaktan gelen her parça hedefe yazılır; akış bitince "finish" olayı fırlar.

Akış: const kaynak = Readable.from(["satır1", "satır2"]); const hedef = new Writable({ write(chunk, enc, cb) { console.log("Kopyalandı: " + chunk.toString()); cb(); } }); kaynak.pipe(hedef); hedef.on("finish", () => console.log("Kopyalama tamam"));. Çıktı: Kopyalandı: satır1, Kopyalandı: satır2, Kopyalama tamam. pipe parçaları otomatik aktardığı için elle write çağırmana gerek kalmaz.

Uygulama Dosya kopyalama yaz

kaynak adında Readable.from(["satır1", "satır2"]) oluştur. hedef adında bir Writable oluştur: write içinde "Kopyalandı: " + chunk.toString() yazdır ve cb() çağır. kaynak.pipe(hedef) ile bağla. hedef.on("finish", ...) ile "Kopyalama tamam" yaz.

Başlangıç kodu

index.js
// Readable ve Writable içe aktar
// buraya yaz

// kaynak ve hedef oluştur
// buraya yaz

// kaynak'ı hedef'e pipe ile bağla ve finish'i dinle
// buraya yaz

Örnek çözüm

index.js
const { Readable, Writable } = require("stream");
const kaynak = Readable.from(["satır1", "satır2"]);
const hedef = new Writable({
  write(chunk, enc, cb) { console.log("Kopyalandı: " + chunk.toString()); cb(); }
});
kaynak.pipe(hedef);
hedef.on("finish", () => console.log("Kopyalama tamam"));

Beklenen çıktı

Kopyalandı: satır1
Kopyalandı: satır2
Kopyalama tamam

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kopyalama simülasyonu hangi parçaları birleştirir?

index.js
kaynak.pipe(hedef)
  • Yalnızca new Writable
  • Yalnızca console.log
  • Yalnızca require
  • Readable, Writable ve pipe Doğru cevap

Açıklama: Readable kaynak, Writable hedef ve pipe bağlar.

2 Aracı rolüne eşle

Kavram Anlamı
Readable.from Kaynak akışı oluşturur
new Writable Hedef akışı oluşturur
pipe Kaynağı hedefe bağlar
"finish" Kopyalama tamam

Orta seviye bölümündeki tüm dersler