| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 // Read the file in blocks of size 64k. | 7 // Read the file in blocks of size 64k. |
| 8 const int _BLOCK_SIZE = 64 * 1024; | 8 const int _BLOCK_SIZE = 64 * 1024; |
| 9 | 9 |
| 10 | 10 |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 return readAsBytes().then((bytes) { | 487 return readAsBytes().then((bytes) { |
| 488 return _decodeLines(bytes, encoding); | 488 return _decodeLines(bytes, encoding); |
| 489 }); | 489 }); |
| 490 } | 490 } |
| 491 | 491 |
| 492 List<String> readAsLinesSync({Encoding encoding: UTF8}) { | 492 List<String> readAsLinesSync({Encoding encoding: UTF8}) { |
| 493 return _decodeLines(readAsBytesSync(), encoding); | 493 return _decodeLines(readAsBytesSync(), encoding); |
| 494 } | 494 } |
| 495 | 495 |
| 496 Future<File> writeAsBytes(List<int> bytes, | 496 Future<File> writeAsBytes(List<int> bytes, |
| 497 {FileMode mode: FileMode.WRITE}) { | 497 {FileMode mode: FileMode.WRITE, |
| 498 bool flush: false}) { |
| 498 try { | 499 try { |
| 499 IOSink sink = openWrite(mode: mode); | 500 IOSink sink = openWrite(mode: mode); |
| 500 sink.add(bytes); | 501 sink.add(bytes); |
| 501 sink.close(); | 502 if (flush) { |
| 503 sink.flush().then((_) => sink.close()); |
| 504 } else { |
| 505 sink.close(); |
| 506 } |
| 502 return sink.done.then((_) => this); | 507 return sink.done.then((_) => this); |
| 503 } catch (e) { | 508 } catch (e) { |
| 504 return new Future.error(e); | 509 return new Future.error(e); |
| 505 } | 510 } |
| 506 } | 511 } |
| 507 | 512 |
| 508 void writeAsBytesSync(List<int> bytes, {FileMode mode: FileMode.WRITE}) { | 513 void writeAsBytesSync(List<int> bytes, |
| 514 {FileMode mode: FileMode.WRITE, |
| 515 bool flush: false}) { |
| 509 RandomAccessFile opened = openSync(mode: mode); | 516 RandomAccessFile opened = openSync(mode: mode); |
| 510 opened.writeFromSync(bytes, 0, bytes.length); | 517 opened.writeFromSync(bytes, 0, bytes.length); |
| 518 if (flush) opened.flushSync(); |
| 511 opened.closeSync(); | 519 opened.closeSync(); |
| 512 } | 520 } |
| 513 | 521 |
| 514 Future<File> writeAsString(String contents, | 522 Future<File> writeAsString(String contents, |
| 515 {FileMode mode: FileMode.WRITE, | 523 {FileMode mode: FileMode.WRITE, |
| 516 Encoding encoding: UTF8}) { | 524 Encoding encoding: UTF8, |
| 525 bool flush: false}) { |
| 517 try { | 526 try { |
| 518 return writeAsBytes(encoding.encode(contents), mode: mode); | 527 return writeAsBytes(encoding.encode(contents), mode: mode, flush: flush); |
| 519 } catch (e) { | 528 } catch (e) { |
| 520 return new Future.error(e); | 529 return new Future.error(e); |
| 521 } | 530 } |
| 522 } | 531 } |
| 523 | 532 |
| 524 void writeAsStringSync(String contents, | 533 void writeAsStringSync(String contents, |
| 525 {FileMode mode: FileMode.WRITE, | 534 {FileMode mode: FileMode.WRITE, |
| 526 Encoding encoding: UTF8}) { | 535 Encoding encoding: UTF8, |
| 527 writeAsBytesSync(encoding.encode(contents), mode: mode); | 536 bool flush: false}) { |
| 537 writeAsBytesSync(encoding.encode(contents), mode: mode, flush: flush); |
| 528 } | 538 } |
| 529 | 539 |
| 530 String toString() => "File: '$path'"; | 540 String toString() => "File: '$path'"; |
| 531 | 541 |
| 532 static throwIfError(Object result, String msg, String path) { | 542 static throwIfError(Object result, String msg, String path) { |
| 533 if (result is OSError) { | 543 if (result is OSError) { |
| 534 throw new FileSystemException(msg, path, result); | 544 throw new FileSystemException(msg, path, result); |
| 535 } | 545 } |
| 536 } | 546 } |
| 537 } | 547 } |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 | 889 |
| 880 void _checkAvailable() { | 890 void _checkAvailable() { |
| 881 if (_asyncDispatched) { | 891 if (_asyncDispatched) { |
| 882 throw new FileSystemException("An async operation is currently pending", p
ath); | 892 throw new FileSystemException("An async operation is currently pending", p
ath); |
| 883 } | 893 } |
| 884 if (closed) { | 894 if (closed) { |
| 885 throw new FileSystemException("File closed", path); | 895 throw new FileSystemException("File closed", path); |
| 886 } | 896 } |
| 887 } | 897 } |
| 888 } | 898 } |
| OLD | NEW |