Flutterでテキストファイルの読み込み・保存する方法について整理しました。
【Flutter】テキストファイルの読み込み・保存
dart:ioライブラリで、CSVファイルの読み込みができます。
【Flutter入門】ファイルの読み書き・操作
Flutterでファイル読み書きする方法を整理しました。【dart:io編】入力した内容をファイルに読み書きファイル出力用ライブラリ「dart:io」を浸かって、以下のようなファイル読み書きができるアプリを作ってみます。 項目 動作 ボタン...
【Dart入門】ファイルの読み書き操作(text、csvなど)
Dartでファイルの読み書き操作(text、csvなど)をする方法について入門者向けにまとめました。
実行例
【サンプルコード】Flutter + Dart
Flutter + Dartで実装したサンプルコードは以下の通りです。
■lib/main.dart
import 'dart:async';//非同期処理用ライブラリ import 'dart:io';//ファイル出力用ライブラリ import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; //アプリがファイルを保存可能な場所を取得するライブラリ //テキストフィールドの状態を管理するためのクラス final _textController = TextEditingController(); final _fileName = 'savedata.txt'; //出力するテキストファイル名 void main() => runApp(MyApp()); //ステートレス class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'サンプルアプリ', theme: new ThemeData.dark(), home: FilePage (title: 'サンプルアプリ'), ); } } class FilePage extends StatefulWidget { FilePage ({Key key, this.title}) : super(key: key); final String title; @override _FilePageState createState() => _FilePageState(); } //ステートフル class _FilePageState extends State { String fileData = ''; //ファイルの保存 void saveButton() async { saveTxtFile(_textController.text); } //ファイルの読み込み void loadButton() async { setState(() { loadTxtFile().then((String value) { setState(() { fileData = value; }); }); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( //title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('テキスト入力'), Padding( padding: EdgeInsets.all(2.0), child: TextField( autofocus: true, controller: _textController, // テキスト入力欄 decoration: InputDecoration(icon: Icon(Icons.arrow_forward)), ), ), // ボタンタップでsaveButtonメソッド、loadButtonメソッドを呼び出し Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children:[ RaisedButton(child: Text('保存'), onPressed: saveButton), RaisedButton(child: Text('読込'), onPressed: loadButton),] ), // 読み込んだファイルの中身を表示 Padding( padding: EdgeInsets.all(2.0), child: Text(fileData, )), ], ), ), ); } } //テキストファイルを保存するパスを取得する Future getFilePath() async { final directory = await getTemporaryDirectory(); return File(directory.path + '/' + _fileName); } //テキストファイルの読み込み Future loadTxtFile() async { final file = await getFilePath(); return file.readAsString(); } //テキストファイルの読み込み Future saveTxtFile(String data) async { getFilePath().then((File file) { file.writeAsString(data); }); return 0; }
pubspec.yaml
name: app depreion: A new Flutter application. version: 1.0.0+1 environment: sdk: ">=2.1.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 dev_dependencies: flutter_test: sdk: flutter path_provider: ^0.5.0+1 flutter: uses-material-design: true
- | 関連記事 |
---|---|
1 | ■【Flutter入門】iOS、Android、Windowsアプリ開発 |
コメント