Узнайте, как быстро читать и записывать файлы в этом компактном руководстве.
В сегодняшней быстрой подсказке мы узнаем, насколько легко читать и записывать файлы в Dart. Для этого мы воспользуемся объектом File
библиотеки ‘dart: io’.
Чтобы продолжить, сгенерируйте проект с полной консолью с оператором сцены:
$ mkdir my_app && cd my_app $ stagehand console-full
Смотрите решение в видео ниже:
Вот полное решение:
import 'dart:io';
main() async {
var file = File('data.txt');
var contents;
if (await file.exists()) {
// Read file
contents = await file.readAsString();
print(contents);
// Write file
var fileCopy = await File('data-copy.txt').writeAsString(contents);
print(await fileCopy.exists());
print(await fileCopy.length());
}
}
И исходный код.
Расширение примера
1. Как лучше указать путь к файлу
Установите пакет path
, добавив зависимость к вашему pubspec.yaml
файлу:
dependencies: path: ^1.6.2
И запустил pub get
в вашем терминале.
Импортируйте это в начало bin/main.dart
и измените путь следующим образом:
import 'dart:io';
import 'package:path/path.dart';
void main() async {
var pathToFile = join(dirname(Platform.script.toFilePath()), '..', 'data.txt');
var file = File(pathToFile);
..
..
}
2. Как читать файл построчно
Мы можем создать поток чтения для обработки файла:
import 'dart:convert'; // Contains the `Utf8Decoder` and `LineSplitter` stream transformers
..
..
if (await file.exists()) {
// Read file
contents = StringBuffer();
var contentStream = file.openRead();
contentStream
.transform(Utf8Decoder())
.transform(LineSplitter())
.listen((String line) => contents.write(line), // Add line to our StringBuffer object
onDone: () => print(contents.toString()), // Call toString() method to receive the complete data
onError: (e) => print('[Problems]: $e'));
..
..
}
..
..
Хорошим вариантом использования для этого будет обработка файла, содержащего переменные среды, например, содержимое файла ниже:
PORT=8080
API_KEY=lkjsk453lkslfkl5
API_USER=jermaineo
Пожалуйста, оставьте свой отзыв в комментариях и дайте мне знать, что вы хотели бы видеть в следующем!
Подпишитесь на канал Youtube для просмотра новых видео на Dart. Спасибо!
Ставьте лайки, делитесь и подписывайтесь на меня 😍, чтобы узнать больше о Dart.
Дальнейшее чтение: