Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 从“获取文本”;。txt";文件并将其保存在字符串变量dart中_String_Flutter_Asynchronous_Dart - Fatal编程技术网

String 从“获取文本”;。txt";文件并将其保存在字符串变量dart中

String 从“获取文本”;。txt";文件并将其保存在字符串变量dart中,string,flutter,asynchronous,dart,String,Flutter,Asynchronous,Dart,我的应用程序的文档文件夹中有一个名为“bio.txt”的“.txt”文件。 我想读取它的内容并将其存储在字符串变量中。 我的问题是“reading action”是一个“Future”函数,我很难将它的值保存在“String”中 我阅读文件时带着: Future get\u localPath异步{ 最终目录=等待getApplicationDocumentsDirectory(); 返回directory.path; } Future\u localFile(字符串名称)异步{ 最终路径=等待

我的应用程序的文档文件夹中有一个名为“bio.txt”的“.txt”文件。 我想读取它的内容并将其存储在字符串变量中。 我的问题是“reading action”是一个“Future”函数,我很难将它的值保存在“String”中

我阅读文件时带着:

Future get\u localPath异步{
最终目录=等待getApplicationDocumentsDirectory();
返回directory.path;
}
Future\u localFile(字符串名称)异步{
最终路径=等待_localPath;
返回文件(“$path/$name”);
}
未来读取(字符串文件名)异步{
试一试{
final file=wait_localFile(文件名);
//读取文件。
返回wait file.readAsString();
}捕获(e){
//如果遇到错误,则返回0。
返回“无法读取”;
}
}
我想用以下方法保存它:

String\u bio=\u read(“bio.txt”)。然后((value)=>String);
你知道为什么这个解决方案不起作用吗?
有什么建议吗?

因为期货的
then
不会返回值,所以应该是这样的

var\u bio;
_读取(“bio.txt”)。然后((值){
_bio=价值;
});
或者通过将上下文
\u bio
设置为异步上下文

var\u bio=wait\u read(“bio.txt”);

因为期货的
then
不会返回值,所以应该是这样的

var\u bio;
_读取(“bio.txt”)。然后((值){
_bio=价值;
});
或者通过将上下文
\u bio
设置为异步上下文

var\u bio=wait\u read(“bio.txt”);

您可以使用then块,也可以使用async/await

_read ('file.txt').then((value){
bio = value;
 });
或:


bio=wait_read('file.txt')

您可以使用then块,也可以使用异步/等待

_read ('file.txt').then((value){
bio = value;
 });
或:

bio=wait_read('file.txt')

这是我的解决方案:

String _myRead( String filename){
 var _bio;

 _read("bio.txt").then((String) {
   _bio = String;
 });
 return _bio;
}
String _bio=_myRead("bio.txt");
这是我的解决方案:

String _myRead( String filename){
 var _bio;

 _read("bio.txt").then((String) {
   _bio = String;
 });
 return _bio;
}
String _bio=_myRead("bio.txt");

您可以在此处阅读有关async/futures的更多信息。您可以在此处阅读有关async/futures的更多信息。我不想将值存储在“var”中,而是存储在“String”中。@MichealRoss然后在第一个版本中使用
String\u bio
,或者只使用第二个版本(在这种情况下,类型推断将使
\u bio
a
字符串
).@MichealRoss我选择退出
\u bio
的类型,因为read函数已经有一个返回类型,使
\u bio
成为
字符串。Dart与Java不同,它只使用类型进行检查,而不将类型传递给编译。在Dart中,使用更少的类型而不丢失类型安全性更好。我不想将值存储在“var”中,而是存储在“String”中。@MichealRoss然后在第一个版本中使用
String\u bio
,或者只使用第二个版本(在这种情况下,类型推断将使
\u bio
成为
字符串
).@MichealRoss我选择退出
\u bio
的类型,因为read函数已经有一个返回类型,使
\u bio
成为
字符串。Dart与Java不同,它只使用类型进行检查,而不将类型传递给编译。在Dart中,使用较少的类型而不丢失类型安全性更好。