Dart Academy · Pelajaran

Streaming File Besar

Memproses file bagian demi bagian

Pelajaran 3 dari 413 langkah

Streaming File Besar adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.

Mengapa Tidak Membacanya Sekaligus

readAsString memuat seluruh berkas ke memori. Untuk log atau video berukuran sangat besar, hal itu dapat membuat program Anda berhenti, jadi alirkan datanya sebagai aliran.

Membuka Aliran Baca

Panggil openRead pada File untuk mendapatkan aliran potongan byte. Anda memproses setiap potongan lalu melepaskan potongan yang sudah lama.

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

Menelusuri Potongan

Gunakan await for untuk menerima setiap potongan saat tiba. Penggunaan memori tetap stabil, berapa pun ukuran file yang bertambah.

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

Byte Perlu Didekodekan

Setiap potongan berupa byte mentah. Untuk membaca teks, alirkan stream melalui utf8.decoder agar Anda mendapatkan potongan String.

stream.transform(utf8.decoder);

Memisahkan Menjadi Baris

Rangkaikan LineSplitter setelah dekoder, lalu stream akan mengeluarkan satu baris yang rapi setiap kali, siap diproses.

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

Menghitung Baris dengan Ringan

Sekarang menghitung file yang terdiri dari sejuta baris menjadi mudah dan ringan. Tambahkan penghitung di dalam perulangan tanpa pernah menampung seluruh file.

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

Membuka Aliran Tulis

Perlu menulis keluaran berukuran besar? openWrite mengembalikan IOSink yang Anda isi secara bertahap, sambil mengalirkan data ke disk.

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

Mengisi Sink

Kirim teks dengan sink.write atau sink.writeln di dalam perulangan. Setiap pemanggilan mengalirkan lebih banyak data tanpa membangun String raksasa baru.

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

Selalu Menutup Sink

Setelah selesai, panggil close dan gunakan await. Tindakan ini menulis byte terakhir dan membebaskan handel file dengan benar.

await sink.close();

Mengalirkan Stream ke Sink

Untuk menyalin file secara efisien, pipe stream baca langsung ke sink tulis. Dart menangani tekanan balik untuk Anda.

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

Menangani Error Stream

Stream dapat gagal di tengah aliran. Bungkus perulangan dengan try/catch agar error pembacaan tidak diam-diam merusak hasil Anda.

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

Pemeriksaan Singkat

Anda harus memproses log berukuran 5 GB pada mesin kecil. Pendekatan apa yang tepat?

Ringkasan

Sekarang Anda dapat membaca secara streaming dengan openRead, mendekode dan memisahkan menjadi baris, menulis secara bertahap melalui IOSink, serta menggunakan pipe untuk penyalinan cepat.

Gratis untuk memulai

Belajar Dart dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Streaming File Besar” gratis?

Ya — teks lengkap “Streaming File Besar” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Streaming File Besar”?

Memproses file bagian demi bagian Kamu berlatih Dart Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Dart Academy?

Tidak diperlukan pengalaman sebelumnya. Dart Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Streaming File Besar” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Dart Academy ini?

Ya. Setiap pelajaran Dart Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membaca dan Menulis File
  2. Direktori, Path, dan FileSystemEntity
  3. Streaming File Besar
  4. Stdin, Stdout, dan Argumen Proses
← Kembali ke Dart Academy