Dosya I/O
- Dart kursu
- Orta seviye
- Ders 115/116
- 6 dk
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
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
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?
- writeAsStringSync Doğru cevap
- save
- toString
Açıklama: writeAsStringSync bir File'a dize yazar.
2 dart:io içe aktarımı
import 'dart:____';
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 |