我想将文件保存在Android / iOS的本地存储中。我遵循Flutter食谱来保存文件,但是没有用。到处都有使用File类的示例,但是当我使用它时它是不确定的。我正在使用Dart 2.2.0和Flutter 1.2.1
我已经尝试了一些网站的示例代码片段。没事。我的Dart文件中未定义文件类readAsString
和writeAsString
。
这是代码。在DartPad中对其进行了检查。我在哪里错了?
//packages
import 'dart:io';
import 'dart:async';
import 'package:path_provider/path_provider.dart';
//start
class File {
/// Directory Path
/// Local Directory Path
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
// For your reference print the AppDoc directory
print(directory.path);
return directory.path;
}
/// Reference for file Location
Future<File> get _localFile async {
final path = await _localPath;
final address = '$path/data.txt';
return File(address);
}
/// Presenting different Data as 1 String
String convertingtoString(String title, String author, String content) {
return '$title\n$author\n\n$content';
}
/// Write to file
/// Writing as String
Future<File> writeContent(String matter) async {
/// Get matter converted to string as matter
final file = await _localFile;
// Write the file
return file.writeAsString(matter);
}
/// Read from file
Future<String> readcontent() async {
try {
final file = await _localFile;
// Read the file
String contents = await file.readAsString();
return contents;
} catch (e) {
// If there is an error reading, return a default String
return 'Error, Couldn\'t read file';
}
}
}
这是我的Android flutter项目中的代码。我在VScode中遇到类似DartPad的错误
答案 0 :(得分:0)
您已经创建了自己的名为File
的类,因此对File
隐藏了dart:io
类。为您的自定义类命名其他名称,或执行以下操作:
import 'dart:io' as io;
并在打算使用io.File
的{{1}}类的地方使用dart:io
。 (我建议重命名您的自定义类以避免混淆。)
由于您拥有File
,因此import 'dart:io';
类应该可供您使用。
如果您仅使用DartPad尝试此操作,那么它(除其他功能外)将无法在此处使用,因为dart:io
is meant to be used with a Dart VM。 File
在具有沙盒环境且通常会阻止文件系统访问的浏览器中无法使用:
重要:基于浏览器的应用程序无法使用此库。只有服务器,命令行脚本和Flutter移动应用程序才能导入和使用dart:io。