2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Flutter】ローカルにファイルを保存したり読み込んだり

Posted at

ローカルファイルに書き込む

void write() async {
  final directory = await getApplicationDocumentsDirectory();
  final path = directory.path;
  final file = File('$path/hoge.txt');

  // ファイルがなかった時だけ書き込む
  if (!await file.exists()) {
    await file.create();
    await file.writeAsString('aiueo');
  }
}

ローカルファイルから読み込む

void read() async {
  final directory = await getApplicationDocumentsDirectory();
  final path = directory.path;
  final file = File('$path/hoge.txt');

  // ファイルがあった時だけ読み込む
  if (await file.exists()) {
    final data = await file.readAsString();
    print(data);
  }
}

これらを使うにあたって

pubspec.yaml を修正する

getApplicationDocumentsDirectory() を使用するには path_provider パッケージが必要なので、 pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.0.14

のように path_provider を追記する必要がある
バージョン部分は path_provider などを見て設定する

import文の追加

getApplicationDocumentsDirectory() を使うには

import 'package:path_provider/path_provider.dart';

が、

File() を使うには

import 'dart:io';

が、必要なのでそれぞれ記載する

ちょっと補足

path_provider には getApplicationDocumentsDirectory() の他にも用途に応じて様々なディレクトリパスを取得できるメソッドが用意されている。

path_provider library を見て用途に応じたメソッドを使い分けるのが良さそう
(なのですが、、明確な違いがよくわからずなので割愛。。。)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?