CodeBlanks Logo Icon CodeBlanks

Dosya I/O

dart:io ile verileri dosyaya kaydedip yüklersin.

Dosya girdi/çıktısı

Görevleri dosyaya kaydetmek için dart:io'daki File sınıfını kullanırsın. import 'dart:io'; gereklidir.

File('tasks.txt').writeAsStringSync(content) ile yazarsın, .readAsStringSync() ile okursun. Bu, verileri kalıcı yapar.

Senkron metotlar basit komut satırı programları için uygundur; asenkron alternatifleri büyük dosyalarda tercih edilir. Dosya yoksa writeAsStringSync onu oluşturur; varsa içeriğin üzerine yazar.

File örneği

Tipik kullanım: var file = File('tasks.txt'); file.writeAsStringSync('veri'); print(file.readAsStringSync());.

Burada önce dosyaya yazar, sonra aynı dosyayı okuyup ekrana basarsın. writeAsStringSync dosyayı oluşturur (varsa üzerine yazar).

Birden çok değeri yazmak için tasks.map((t) => t.title).join('\n') ile satır satır birleştirirsin. Okuma ve yazma arası dosyayı elle kapatmazsın; Dart kaynakları otomatik yönetir.

Uygulama Görevleri dosyaya yaz ve oku

import 'dart:io'; ekle. main içinde var tasks = <Task>[Task('Kod yaz'), Task('Test yaz')]; tanımla. var file = File('tasks.txt'); oluştur. file.writeAsStringSync(tasks.map((t) => t.title).join('\n')); ile başlıkları yaz. print(file.readAsStringSync()); ile oku ve yazdır.

Başlangıç kodu

main.dart
import 'dart:io';

abstract class Trackable {
  bool get isDone;
}

class Task implements Trackable {
  final String title;
  bool done;
  Task(this.title, {this.done = false});

  @override
  bool get isDone => done;
}

void main() {
  // tasks listesi oluştur, dosyaya yaz, oku ve yazdır
}

Örnek çözüm

main.dart
import 'dart:io';

abstract class Trackable {
  bool get isDone;
}

class Task implements Trackable {
  final String title;
  bool done;
  Task(this.title, {this.done = false});

  @override
  bool get isDone => done;
}

void main() {
  var tasks = <Task>[Task('Kod yaz'), Task('Test yaz')];
  var file = File('tasks.txt');
  file.writeAsStringSync(tasks.map((t) => t.title).join('\n'));
  print(file.readAsStringSync());
}

Beklenen çıktı

Kod yaz
Test yaz

Soru ve cevaplar

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

1 Dosyaya yazmak için hangi metod kullanılır?

  • print
  • writeAsStringSync Doğru cevap
  • save
  • toString

Açıklama: writeAsStringSync bir File'a dize yazar.

2 dart:io içe aktarımı

Soru
import 'dart:____';
Cevap
import 'dart:io';

Açıklama: dart:io File sınıfını sağlar.

3 Dosya girdi/çıktısı parçaları

Kavram Anlamı
import 'dart:io' İçe aktarım
File(...) Dosya nesnesi
writeAsStringSync Yazma
readAsStringSync Okuma

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