Index: sdk/lib/io/file_impl.dart |
diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart |
index e7080d73ff14ef8242361da56f3f5f43fedc3ce7..8a7ce392de92689007e6dd043b68900fc2961756 100644 |
--- a/sdk/lib/io/file_impl.dart |
+++ b/sdk/lib/io/file_impl.dart |
@@ -494,28 +494,37 @@ class _File extends FileSystemEntity implements File { |
} |
Future<File> writeAsBytes(List<int> bytes, |
- {FileMode mode: FileMode.WRITE}) { |
+ {FileMode mode: FileMode.WRITE, |
+ bool flush: false}) { |
try { |
IOSink sink = openWrite(mode: mode); |
sink.add(bytes); |
- sink.close(); |
+ if (flush) { |
+ sink.flush().then((_) => sink.close()); |
+ } else { |
+ sink.close(); |
+ } |
return sink.done.then((_) => this); |
} catch (e) { |
return new Future.error(e); |
} |
} |
- void writeAsBytesSync(List<int> bytes, {FileMode mode: FileMode.WRITE}) { |
+ void writeAsBytesSync(List<int> bytes, |
+ {FileMode mode: FileMode.WRITE, |
+ bool flush: false}) { |
RandomAccessFile opened = openSync(mode: mode); |
opened.writeFromSync(bytes, 0, bytes.length); |
+ if (flush) opened.flushSync(); |
opened.closeSync(); |
} |
Future<File> writeAsString(String contents, |
{FileMode mode: FileMode.WRITE, |
- Encoding encoding: UTF8}) { |
+ Encoding encoding: UTF8, |
+ bool flush: false}) { |
try { |
- return writeAsBytes(encoding.encode(contents), mode: mode); |
+ return writeAsBytes(encoding.encode(contents), mode: mode, flush: flush); |
} catch (e) { |
return new Future.error(e); |
} |
@@ -523,8 +532,9 @@ class _File extends FileSystemEntity implements File { |
void writeAsStringSync(String contents, |
{FileMode mode: FileMode.WRITE, |
- Encoding encoding: UTF8}) { |
- writeAsBytesSync(encoding.encode(contents), mode: mode); |
+ Encoding encoding: UTF8, |
+ bool flush: false}) { |
+ writeAsBytesSync(encoding.encode(contents), mode: mode, flush: flush); |
} |
String toString() => "File: '$path'"; |