Index: utils/pub/io.dart |
diff --git a/utils/pub/io.dart b/utils/pub/io.dart |
index 79f0a06524cc5b91b5e953fdf03d42ccb5b6ca82..48c4901792a6adb21b9d33e8f291a2b6c193c61d 100644 |
--- a/utils/pub/io.dart |
+++ b/utils/pub/io.dart |
@@ -85,6 +85,15 @@ Future<String> readTextFile(file) { |
}); |
} |
+/// Reads the contents of the binary file [file], which can either be a [String] |
+/// or a [File]. |
+Future<List<int>> readByteFile(file) { |
Bob Nystrom
2013/01/31 19:08:29
"Byte" -> "Binary"?
"ByteFile" reads strangely to
nweiz
2013/01/31 21:39:10
Done.
|
+ var path = _getPath(file); |
+ return log.ioAsync("Reading byte file $path.", |
+ new File(path).readAsBytes(), |
Bob Nystrom
2013/01/31 19:08:29
Feel free to make this sync if you prefer.
nweiz
2013/01/31 21:39:10
Done.
|
+ (contents) => "Read ${contents.length} bytes from $path."); |
+} |
+ |
/// Creates [file] (which can either be a [String] or a [File]), and writes |
/// [contents] to it. Completes when the file is written and closed. |
/// |
@@ -109,6 +118,22 @@ Future<File> writeTextFile(file, String contents, {dontLogContents: false}) { |
}); |
} |
+/// Creates [file] (which can either be a [String] or a [File]), and writes |
+/// [contents] to it. Completes when the file is written and closed. |
+Future<File> writeByteFile(file, List<int> contents) { |
Bob Nystrom
2013/01/31 19:08:29
Byte -> Binary.
nweiz
2013/01/31 21:39:10
Done.
|
+ var path = _getPath(file); |
+ file = new File(path); |
+ |
+ log.io("Writing ${contents.length} characters to binary file $path."); |
Bob Nystrom
2013/01/31 19:08:29
"characters" -> "bytes".
nweiz
2013/01/31 21:39:10
Done.
|
+ return file.open(FileMode.WRITE).then((opened) { |
+ return opened.writeList(contents, 0, contents.length) |
+ .then((_) => opened.close()); |
+ }).then((_) { |
+ log.fine("Wrote text file $path."); |
+ return file; |
+ }); |
Bob Nystrom
2013/01/31 19:08:29
then() then() then()
Make this sync?
nweiz
2013/01/31 21:39:10
Done.
|
+} |
+ |
/// Asynchronously deletes [file], which can be a [String] or a [File]. Returns |
/// a [Future] that completes when the deletion is done. |
Future<File> deleteFile(file) { |