0Pricing
Dart Academy · Ders

Büyük Dosyaları Akışla İşleme

Dosyaları parça parça işleyin.

Büyük Dosyaları Akışla İşleme, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Dart Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Dart Academy kursu toplamda 4 dersten oluşur.

Neden tamamını okumamalı

readAsString dosyanın tamamını belleğe yükler. Büyük bir günlük veya video için bu durum programınızın çökmesine neden olabilir; bu nedenle bunun yerine dosyayı akış olarak işlersiniz.

Okuma Akışını Açma

Bir bayt parçaları akışı almak için bir File üzerinde openRead çağırın. Her chunk parçasını işleyip eskilerini serbest bırakın.

final stream = File('big.log').openRead();

Parçalar Arasında İlerleme

Her chunk parçasını geldiği anda almak için await for kullanın. Dosya ne kadar büyürse büyüsün bellek kullanımı sabit kalır.

await for (final chunk in stream) { use(chunk); }

Baytların Kodunun Çözülmesi Gerekir

Her chunk parçası ham baytlardan oluşur. Metin okuyabilmek için akışı utf8.decoder üzerinden pipe edin; böylece bunun yerine String parçaları elde edersiniz.

stream.transform(utf8.decoder);

Satırlara Bölme

Decoder'dan sonra LineSplitter ekleyin; akış, işlenmeye hazır şekilde her seferinde düzenli bir satır üretir.

stream.transform(utf8.decoder).transform(LineSplitter());

Satırları Ekonomik Biçimde Sayma

Artık milyon satırlık bir dosyayı saymak kolay ve hafiftir. Döngünün içinde bir sayaç artırın; dosyanın tamamını bellekte tutmayın.

var n = 0; await for (final l in lines) n++;

Yazma Akışını Açma

Büyük miktarda çıktı mı yazıyorsunuz? openWrite, verileri kademeli olarak besleyeceğiniz bir IOSink döndürür ve siz ilerledikçe verileri diske aktarır.

final sink = File('out.txt').openWrite();

Alıcıyı Besleme

Bir döngünün içinde metni sink.write veya sink.writeln ile gönderin. Her çağrı, dev bir String'i yeniden oluşturmadan daha fazla veri aktarır.

for (final row in rows) sink.writeln(row);

Alıcıyı Her Zaman Kapatma

İşiniz bittiğinde close çağrısını yapıp tamamlanmasını bekleyin. Bu işlem son baytları diske aktarır ve dosya tanıtıcısını düzgün biçimde serbest bırakır.

await sink.close();

Akışı Alıcıya Pipe Etme

Bir dosyayı verimli biçimde kopyalamak için bir okuma akışını doğrudan bir yazma alıcısına pipe edin. Dart, geri basıncı sizin için yönetir.

await source.openRead().pipe(target.openWrite());

Akış Hatalarını Ele Alma

Akışlar işlem sırasında başarısız olabilir. Okuma hatasının sonuçlarınızı sessizce bozmasını önlemek için döngüyü try/catch içine alın.

try { await for (final c in stream) {} } catch (e) {}

Hızlı Kontrol

Küçük bir makinede 5 GB boyutunda bir günlük dosyasını işlemeniz gerekiyor. Doğru yaklaşım nedir?

Özet

Artık openRead ile verileri akış hâlinde okuyabilir, kodlarını çözüp satırlara bölebilir, bir IOSink üzerinden kademeli olarak yazabilir ve hızlı kopyalama için pipe kullanabilirsiniz.

Sıkça Sorulan Sorular

“Büyük Dosyaları Akışla İşleme” dersi ücretsiz mi?

Evet — “Büyük Dosyaları Akışla İşleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Dart Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Dart Academy kursu toplamda 4 dersten oluşur.

“Büyük Dosyaları Akışla İşleme” dersinde ne öğreneceğim?

Dosyaları parça parça işleyin. Dart Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Dart Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Dart Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Büyük Dosyaları Akışla İşleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Dart Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Dart Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dosyaları Okuma ve Yazma
  2. Dizinler, Yollar ve FileSystemEntity
  3. Büyük Dosyaları Akışla İşleme
  4. Stdin, Stdout ve İşlem Argümanları
← Dart Academy Sayfasına Dön