1

Java ファイル io コードを dart に移植しようとしていますが、入力を読み取ることができません。

私のリッスン、onDone、または onError メソッドのいずれも呼び出されないようです!

  static void dumpFile(String filename) {
    print("Dumping: $filename Exists: ${new File(filename).existsSync()} Length: ${new File(filename).lengthSync()}");
    Stream stream = new File(filename).openRead();
    stream
      .listen(
        (List<int> codes) {
         print("CODES: $codes");
        },
        onDone: () {print("Done with file");},
        onError: (e) {print(e.toString());}
      );
    print("Dumping done!");
  }

コンソール出力:

Dumping: /Users/gunnar/git/chessbuddy/src/test/resources/pgn/testgame13.pgn
Exists: true Length: 565
Dumping done!

€ dart --version Dart VM バージョン: 0.4.7.1_r21537 (Tue Apr 16 01:34:53 2013)

4

2 に答える 2

1

Dart Editor バージョン 0.5.0-r21823 では、コードが機能し、次の出力が表示されます。

Dumping: test/test.dart Exists: true Length: 519
Dumping done!
CODES: [...]
Done with file

ダンピングが完了していることに注意してください。File.openReadは非同期操作であるため、CODES: [...]の前に表示されます。同等の同期が必要な場合は、File.readAsBytesSyncを使用できます。

于 2013-04-23T13:37:43.777 に答える