ローカルファイルに書き込む
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 を見て用途に応じたメソッドを使い分けるのが良さそう
(なのですが、、明確な違いがよくわからずなので割愛。。。)