2

如何从 Dart 程序中“读取”文件?

http://api.dartlang.org/index.html

Dart 将在客户端运行,因此应该允许将文件作为输入。

4

2 回答 2

4

您可以在 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 简介

于 2012-01-18T22:27:02.617 回答
0

您的问题意味着您想从客户端(即浏览器)执行此操作。该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);
  });
于 2013-02-04T06:43:52.990 回答