如何从 Dart 程序中“读取”文件?
http://api.dartlang.org/index.html
Dart 将在客户端运行,因此应该允许将文件作为输入。
您可以在 Dart 的测试框架中找到文件的用法: status_file_parser.dart(搜索“文件”)。
简而言之:
File file = new File(path);
if (!file.existsSync()) <handle missing file>;
InputStream file_stream = file.openInputStream();
StringInputStream lines = new StringInputStream(file_stream);
lines.lineHandler = () {
String line;
while ((line = lines.readLine()) != null) {
...
};
lines.closeHandler = () {
...
};
请注意,API 尚未最终确定,可能随时更改。
编辑:API 已更改。请参阅新 IO 简介
您的问题意味着您想从客户端(即浏览器)执行此操作。该dart:io
库仅适用于命令行上的独立 VM。
如果您确实想从 VM 中读取文件,现在有一种更简单的方法:
import 'dart:io';
main() {
var filename = new Options().script;
var file = new File(filename);
if (!file.existsSync()) {
print("File $filename does not exist");
return;
}
var contents = file.readAsStringSync();
print(contents);
}
如果您不想在读取整个文件时阻塞,您可以使用readAsString
返回 Future 的异步版本:
file.readAsString().then((contents) {
print(contents);
});