Streaming File Besar
Memproses file bagian demi bagian
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.
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
- Membaca dan Menulis File
- Direktori, Path, dan FileSystemEntity
- Streaming File Besar
- Stdin, Stdout, dan Argumen Proses