| Index: sdk/lib/io/file_impl.dart
|
| diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart
|
| index 0ba765cfb34a485ed91e21f7f778ea3d7f63dc95..72cb4d2d4f10241a18d968902de0e7aaf4345609 100644
|
| --- a/sdk/lib/io/file_impl.dart
|
| +++ b/sdk/lib/io/file_impl.dart
|
| @@ -468,14 +468,15 @@ class _File extends _FileBase implements File {
|
| return new _FileStream(_path);
|
| }
|
|
|
| - IOSink<File> openWrite([FileMode mode = FileMode.WRITE]) {
|
| + IOSink<File> openWrite({FileMode mode: FileMode.WRITE,
|
| + Encoding encoding: Encoding.UTF_8}) {
|
| if (mode != FileMode.WRITE &&
|
| mode != FileMode.APPEND) {
|
| throw new FileIOException(
|
| "Wrong FileMode. Use FileMode.WRITE or FileMode.APPEND");
|
| }
|
| var consumer = new _FileStreamConsumer(this, mode);
|
| - return new IOSink<File>(consumer);
|
| + return new IOSink<File>(consumer, encoding: encoding);
|
| }
|
|
|
| Future<List<int>> readAsBytes() {
|
| @@ -547,23 +548,14 @@ class _File extends _FileBase implements File {
|
|
|
| Future<File> writeAsBytes(List<int> bytes,
|
| [FileMode mode = FileMode.WRITE]) {
|
| - Completer<File> completer = new Completer<File>();
|
| try {
|
| - var stream = openWrite(mode);
|
| - stream.add(bytes);
|
| - stream.close();
|
| - stream.done
|
| - .then((_) {
|
| - completer.complete(this);
|
| - })
|
| - .catchError((e) {
|
| - completer.completeError(e);
|
| - });
|
| + IOSink<File> sink = openWrite(mode: mode);
|
| + sink.writeBytes(bytes);
|
| + sink.close();
|
| + return sink.done.then((_) => this);;
|
| } catch (e) {
|
| - Timer.run(() => completer.completeError(e));
|
| - return completer.future;
|
| + return new Future.immediateError(e);
|
| }
|
| - return completer.future;
|
| }
|
|
|
| void writeAsBytesSync(List<int> bytes, [FileMode mode = FileMode.WRITE]) {
|
|
|