Метод loadString
Метод loadString класса
AssetBundle возвращает с содержимым файла в UTF-8.
Ключ Futurekey совпадает с путём в pubspec.yaml.
Флаг cache управляет кэшированием строки в памяти.
Синтаксис
Future<String> loadString(
String key, {
bool cache = true,
})
Параметры
| Параметр | Описание |
|---|---|
key |
Путь к текстовому файлу в активах. Обязательный аргумент. |
cache |
Если true, повторный вызов с тем же ключом
вернёт строку из памяти без чтения диска.
|
Пример
Давайте выведем текст актива на экран:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: StringDemo()));
}
class StringDemo extends StatefulWidget
{
const StringDemo({super.key});
@override
State<StringDemo> createState() => _StringDemoState();
}
class _StringDemoState extends State<StringDemo>
{
String label = 'abcde';
@override
void initState()
{
super.initState();
rootBundle.loadString('assets/data.txt').then((value) {
setState(() => label = value.trim());
}).catchError((_) {});
}
@override
Widget build(BuildContext context)
{
return Scaffold(body: Center(child: Text(label)));
}
}
На экране после загрузки появится текст из
assets/data.txt или останется 'abcde'.
Пример
Давайте обработаем отсутствующий файл:
import 'package:flutter/services.dart';
void main() async
{
try {
await rootBundle.loadString('assets/missing.txt');
print('abcde');
} catch (_) {
print('12345');
}
}
Результат выполнения кода
"12345"
Смотрите также
-
метод
load,
который читает бинарные данные -
метод
evict,
который сбрасывает кэш изображений -
константа
rootBundle,
через которую вызываютloadString -
класс
AssetBundle,
к которому относится метод