Flutter Dosya İşlemleri – Flutter Geliştirme Part 7

Flutter geliştirme yazılarının bir yenisi ile karşınızdayım. Bu yazımızda dosya okuma ve dosyaya yazma işlemleri yapacağız. Flutter dosya işlemleri mobil cihaza dosya kayıt edecek ya da mobil cihazdan dosya okuyacak projeler için yapılması gereklidir. Günümüz mobil uygulamalarının büyük çoğunluğu cihazın kendi hafızasına dosya kayıt etmekten çok buluta kayıt ediyor ancak belki siz cihazın kendi depolama alanına bir şeyler yazmak ya da okumak istersiniz diye bu yazıyı yazıyorum.

Flutter Dosya İşlemleri İçin Önce Kütüphanemizi Ekleyelim

Normal şartlar altında pubspec.yaml dosyasında herhangi bir değişiklik yapmanız gerekmemektedir. Ben sizlere bahsettiğim dosyada değişiklik yaptıracağım çünkü bu kütüphaneden özel bir fonksiyon kullanacağım. Dilerseniz siz bu değişikliği yapmayabilirsiniz. Uygulamaların dosyalarının bulunduğu özel dosya yolları cihazlarda bulunmaktadır. Genelde okuma ve yazma işlemlerini bu dosya yolunda yapmanız önerilmektedir. Bu dosya yolları işletim sisteminden işletim sistemine göre değişiklik göstermektedir. pubspec.yaml dosyasına ekleyeceğiniz path_provider sayesinde kullanmakta olduğunuz işletim sistemine göre bu dosya yolunu alabileceksiniz.

Future<String> get _localPath async {
    final directory = await getApplicationDocumentsDirectory();
    return directory.path;
  }

Yukarıdaki fonksiyon sayesinde pubspec.yaml’de tanıtmış olduğumuz kütüphane ışığında programın çalıştığı dosya yolunu bir string olarak döndürüyoruz.

 Future<File> get _localFile async {
    final path = await _localPath;
    return File('$path/teknotraFavoriler.txt');
  }

Yukarıdaki fonksiyon sayesinde okumak istediğimiz dosyayı bir File object olarak döndürüyoruz. Programın dosyalarının bulunduğu klasörde teknotraFavoriler.txt adı ve formatında bir dosya döndürüyorum.

Future<String> readFile() async {
    try {
      final file = await _localFile;
      String contents = await file.readAsString();
      return contents;
    } catch (e) {
      return "-1";
    }
  }

Yukarıdaki fonksiyonda dosya yolu belirlenen dosyayı bir string okuma yöntemi ile okuyorum. Okuma işlemim sırasında herhangi bir problem oluşursa fonksiyon sonucu olarak -1 oluşmaz ise dosyanın içeriğini döndürüyorum.

Future<File> writeFile(String data) async {
    final file = await _localFile;
    return file.writeAsString('$data');
  }

Yukarıdaki fonksiyon içerisine almış olduğu string objesini dosyaya yazacaktır.

Temelde yukarıdaki 4 fonksiyonu kullanarak okuma ve yazma işlemlerinizi Flutter’da yapabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir