How to read and write a text file in Flutter

Setup

Add the following plugin in pubspec.yaml:

dependencies:
  path_provider: ^1.6.27

Update the version number to whatever is current.

And import it in your code.

import 'package:path_provider/path_provider.dart';

You also have to import dart:io to use the File class.

import 'dart:io';

Writing to a text file

_write(String text) async {
  final Directory directory = await getApplicationDocumentsDirectory();
  final File file = File('${directory.path}/my_file.txt');
  await file.writeAsString(text);
}

Reading from a text file

Future<String> _read() async {
  String text;
  try {
    final Directory directory = await getApplicationDocumentsDirectory();
    final File file = File('${directory.path}/my_file.txt');
    text = await file.readAsString();
  } catch (e) {
    print("Couldn't read file");
  }
  return text;
}

Notes

  • You can also get the path string with join(directory.path, 'my_file.txt') but you need to import 'package:path/path.dart'.
  • Flutter's Official Documentation of Reading and Writing Files
  • This works for iOS, Android, Linux and MacOS but not for web.

As additional info to @Suragch's answer, if you want to find the file you created, you can do as the images show:

enter image description here

And then inside that data folder, go again to a folder named data and search for your package, and then go to:

enter image description here

If you happen to create new files, in order to be able to see them, just right click and click Synchronize.

enter image description here