String 从“获取文本”;。txt";文件并将其保存在字符串变量dart中
我的应用程序的文档文件夹中有一个名为“bio.txt”的“.txt”文件。 我想读取它的内容并将其存储在字符串变量中。 我的问题是“reading action”是一个“Future”函数,我很难将它的值保存在“String”中 我阅读文件时带着: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(字符串名称)异步{ 最终路径=等待
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中,使用较少的类型而不丢失类型安全性更好。