| Index: sdk/lib/io/file_impl.dart
|
| diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart
|
| index 71e3ffefd6c0b7203efb08a0c32d0c19bea8a336..5846131978a4f4172c3446916a7d6a6634ada935 100644
|
| --- a/sdk/lib/io/file_impl.dart
|
| +++ b/sdk/lib/io/file_impl.dart
|
| @@ -452,13 +452,16 @@ class _File extends FileSystemEntity implements File {
|
|
|
| List<int> readAsBytesSync() {
|
| var opened = openSync();
|
| - var builder = new BytesBuilder();
|
| - var data;
|
| - while ((data = opened.readSync(_BLOCK_SIZE)).length > 0) {
|
| - builder.add(data);
|
| + try {
|
| + var builder = new BytesBuilder();
|
| + var data;
|
| + while ((data = opened.readSync(_BLOCK_SIZE)).length > 0) {
|
| + builder.add(data);
|
| + }
|
| + return builder.takeBytes();
|
| + } finally {
|
| + opened.closeSync();
|
| }
|
| - opened.closeSync();
|
| - return builder.takeBytes();
|
| }
|
|
|
| String _tryDecode(List<int> bytes, Encoding encoding) {
|
| @@ -526,9 +529,12 @@ class _File extends FileSystemEntity implements File {
|
| {FileMode mode: FileMode.WRITE,
|
| bool flush: false}) {
|
| RandomAccessFile opened = openSync(mode: mode);
|
| - opened.writeFromSync(bytes, 0, bytes.length);
|
| - if (flush) opened.flushSync();
|
| - opened.closeSync();
|
| + try {
|
| + opened.writeFromSync(bytes, 0, bytes.length);
|
| + if (flush) opened.flushSync();
|
| + } finally {
|
| + opened.closeSync();
|
| + }
|
| }
|
|
|
| Future<File> writeAsString(String contents,
|
|
|