Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Side by Side Diff: sdk/lib/io/file.dart

Issue 2754013002: Format all dart: library files (Closed)
Patch Set: Format all dart: library files Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sdk/lib/io/eventhandler.dart ('k') | sdk/lib/io/file_impl.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 /** 7 /**
8 * The modes in which a File can be opened. 8 * The modes in which a File can be opened.
9 */ 9 */
10 class FileMode { 10 class FileMode {
11 /// The mode for opening a file only for reading. 11 /// The mode for opening a file only for reading.
12 static const READ = const FileMode._internal(0); 12 static const READ = const FileMode._internal(0);
13
13 /// Mode for opening a file for reading and writing. The file is 14 /// Mode for opening a file for reading and writing. The file is
14 /// overwritten if it already exists. The file is created if it does not 15 /// overwritten if it already exists. The file is created if it does not
15 /// already exist. 16 /// already exist.
16 static const WRITE = const FileMode._internal(1); 17 static const WRITE = const FileMode._internal(1);
18
17 /// Mode for opening a file for reading and writing to the 19 /// Mode for opening a file for reading and writing to the
18 /// end of it. The file is created if it does not already exist. 20 /// end of it. The file is created if it does not already exist.
19 static const APPEND = const FileMode._internal(2); 21 static const APPEND = const FileMode._internal(2);
22
20 /// Mode for opening a file for writing *only*. The file is 23 /// Mode for opening a file for writing *only*. The file is
21 /// overwritten if it already exists. The file is created if it does not 24 /// overwritten if it already exists. The file is created if it does not
22 /// already exist. 25 /// already exist.
23 static const WRITE_ONLY = const FileMode._internal(3); 26 static const WRITE_ONLY = const FileMode._internal(3);
27
24 /// Mode for opening a file for writing *only* to the 28 /// Mode for opening a file for writing *only* to the
25 /// end of it. The file is created if it does not already exist. 29 /// end of it. The file is created if it does not already exist.
26 static const WRITE_ONLY_APPEND = const FileMode._internal(4); 30 static const WRITE_ONLY_APPEND = const FileMode._internal(4);
27 final int _mode; 31 final int _mode;
28 32
29 const FileMode._internal(this._mode); 33 const FileMode._internal(this._mode);
30 } 34 }
31 35
32 /// The mode for opening a file only for reading. 36 /// The mode for opening a file only for reading.
33 const READ = FileMode.READ; 37 const READ = FileMode.READ;
38
34 /// The mode for opening a file for reading and writing. The file is 39 /// The mode for opening a file for reading and writing. The file is
35 /// overwritten if it already exists. The file is created if it does not 40 /// overwritten if it already exists. The file is created if it does not
36 /// already exist. 41 /// already exist.
37 const WRITE = FileMode.WRITE; 42 const WRITE = FileMode.WRITE;
43
38 /// The mode for opening a file for reading and writing to the 44 /// The mode for opening a file for reading and writing to the
39 /// end of it. The file is created if it does not already exist. 45 /// end of it. The file is created if it does not already exist.
40 const APPEND = FileMode.APPEND; 46 const APPEND = FileMode.APPEND;
47
41 /// Mode for opening a file for writing *only*. The file is 48 /// Mode for opening a file for writing *only*. The file is
42 /// overwritten if it already exists. The file is created if it does not 49 /// overwritten if it already exists. The file is created if it does not
43 /// already exist. 50 /// already exist.
44 const WRITE_ONLY = FileMode.WRITE_ONLY; 51 const WRITE_ONLY = FileMode.WRITE_ONLY;
52
45 /// Mode for opening a file for writing *only* to the 53 /// Mode for opening a file for writing *only* to the
46 /// end of it. The file is created if it does not already exist. 54 /// end of it. The file is created if it does not already exist.
47 const WRITE_ONLY_APPEND = FileMode.WRITE_ONLY_APPEND; 55 const WRITE_ONLY_APPEND = FileMode.WRITE_ONLY_APPEND;
48 56
49
50 /// Type of lock when requesting a lock on a file. 57 /// Type of lock when requesting a lock on a file.
51 enum FileLock { 58 enum FileLock {
52 /// Shared file lock. 59 /// Shared file lock.
53 SHARED, 60 SHARED,
61
54 /// Exclusive file lock. 62 /// Exclusive file lock.
55 EXCLUSIVE, 63 EXCLUSIVE,
64
56 /// Blocking shared file lock. 65 /// Blocking shared file lock.
57 BLOCKING_SHARED, 66 BLOCKING_SHARED,
67
58 /// Blocking exclusive file lock. 68 /// Blocking exclusive file lock.
59 BLOCKING_EXCLUSIVE, 69 BLOCKING_EXCLUSIVE,
60 } 70 }
61 71
62 /** 72 /**
63 * A reference to a file on the file system. 73 * A reference to a file on the file system.
64 * 74 *
65 * A File instance is an object that holds a [path] on which operations can 75 * A File instance is an object that holds a [path] on which operations can
66 * be performed. 76 * be performed.
67 * You can get the parent directory of the file using the getter [parent], 77 * You can get the parent directory of the file using the getter [parent],
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 /** 260 /**
251 * Renames this file. Returns a `Future<File>` that completes 261 * Renames this file. Returns a `Future<File>` that completes
252 * with a [File] instance for the renamed file. 262 * with a [File] instance for the renamed file.
253 * 263 *
254 * If [newPath] identifies an existing file, that file is 264 * If [newPath] identifies an existing file, that file is
255 * replaced. If [newPath] identifies an existing directory, the 265 * replaced. If [newPath] identifies an existing directory, the
256 * operation fails and the future completes with an exception. 266 * operation fails and the future completes with an exception.
257 */ 267 */
258 Future<File> rename(String newPath); 268 Future<File> rename(String newPath);
259 269
260 /** 270 /**
261 * Synchronously renames this file. Returns a [File] 271 * Synchronously renames this file. Returns a [File]
262 * instance for the renamed file. 272 * instance for the renamed file.
263 * 273 *
264 * If [newPath] identifies an existing file, that file is 274 * If [newPath] identifies an existing file, that file is
265 * replaced. If [newPath] identifies an existing directory the 275 * replaced. If [newPath] identifies an existing directory the
266 * operation fails and an exception is thrown. 276 * operation fails and an exception is thrown.
267 */ 277 */
268 File renameSync(String newPath); 278 File renameSync(String newPath);
269 279
270 /** 280 /**
271 * Copy this file. Returns a `Future<File>` that completes 281 * Copy this file. Returns a `Future<File>` that completes
272 * with a [File] instance for the copied file. 282 * with a [File] instance for the copied file.
273 * 283 *
274 * If [newPath] identifies an existing file, that file is 284 * If [newPath] identifies an existing file, that file is
275 * replaced. If [newPath] identifies an existing directory, the 285 * replaced. If [newPath] identifies an existing directory, the
276 * operation fails and the future completes with an exception. 286 * operation fails and the future completes with an exception.
277 */ 287 */
278 Future<File> copy(String newPath); 288 Future<File> copy(String newPath);
279 289
280 /** 290 /**
281 * Synchronously copy this file. Returns a [File] 291 * Synchronously copy this file. Returns a [File]
282 * instance for the copied file. 292 * instance for the copied file.
283 * 293 *
284 * If [newPath] identifies an existing file, that file is 294 * If [newPath] identifies an existing file, that file is
285 * replaced. If [newPath] identifies an existing directory the 295 * replaced. If [newPath] identifies an existing directory the
286 * operation fails and an exception is thrown. 296 * operation fails and an exception is thrown.
287 */ 297 */
288 File copySync(String newPath); 298 File copySync(String newPath);
289 299
290 /** 300 /**
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 * 444 *
435 * * [FileMode.WRITE]: truncates the file to length zero. 445 * * [FileMode.WRITE]: truncates the file to length zero.
436 * * [FileMode.APPEND]: sets the initial write position to the end 446 * * [FileMode.APPEND]: sets the initial write position to the end
437 * of the file. 447 * of the file.
438 * 448 *
439 * When writing strings through the returned [IOSink] the encoding 449 * When writing strings through the returned [IOSink] the encoding
440 * specified using [encoding] will be used. The returned [IOSink] 450 * specified using [encoding] will be used. The returned [IOSink]
441 * has an `encoding` property which can be changed after the 451 * has an `encoding` property which can be changed after the
442 * [IOSink] has been created. 452 * [IOSink] has been created.
443 */ 453 */
444 IOSink openWrite({FileMode mode: FileMode.WRITE, 454 IOSink openWrite({FileMode mode: FileMode.WRITE, Encoding encoding: UTF8});
445 Encoding encoding: UTF8});
446 455
447 /** 456 /**
448 * Read the entire file contents as a list of bytes. Returns a 457 * Read the entire file contents as a list of bytes. Returns a
449 * `Future<List<int>>` that completes with the list of bytes that 458 * `Future<List<int>>` that completes with the list of bytes that
450 * is the contents of the file. 459 * is the contents of the file.
451 */ 460 */
452 Future<List<int>> readAsBytes(); 461 Future<List<int>> readAsBytes();
453 462
454 /** 463 /**
455 * Synchronously read the entire file contents as a list of bytes. 464 * Synchronously read the entire file contents as a list of bytes.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 * the entire operation has completed. 509 * the entire operation has completed.
501 * 510 *
502 * By default [writeAsBytes] creates the file for writing and truncates the 511 * By default [writeAsBytes] creates the file for writing and truncates the
503 * file if it already exists. In order to append the bytes to an existing 512 * file if it already exists. In order to append the bytes to an existing
504 * file, pass [FileMode.APPEND] as the optional mode parameter. 513 * file, pass [FileMode.APPEND] as the optional mode parameter.
505 * 514 *
506 * If the argument [flush] is set to `true`, the data written will be 515 * If the argument [flush] is set to `true`, the data written will be
507 * flushed to the file system before the returned future completes. 516 * flushed to the file system before the returned future completes.
508 */ 517 */
509 Future<File> writeAsBytes(List<int> bytes, 518 Future<File> writeAsBytes(List<int> bytes,
510 {FileMode mode: FileMode.WRITE, 519 {FileMode mode: FileMode.WRITE, bool flush: false});
511 bool flush: false});
512 520
513 /** 521 /**
514 * Synchronously write a list of bytes to a file. 522 * Synchronously write a list of bytes to a file.
515 * 523 *
516 * Opens the file, writes the list of bytes to it and closes the file. 524 * Opens the file, writes the list of bytes to it and closes the file.
517 * 525 *
518 * By default [writeAsBytesSync] creates the file for writing and truncates 526 * By default [writeAsBytesSync] creates the file for writing and truncates
519 * the file if it already exists. In order to append the bytes to an existing 527 * the file if it already exists. In order to append the bytes to an existing
520 * file, pass [FileMode.APPEND] as the optional mode parameter. 528 * file, pass [FileMode.APPEND] as the optional mode parameter.
521 * 529 *
522 * If the [flush] argument is set to `true` data written will be 530 * If the [flush] argument is set to `true` data written will be
523 * flushed to the file system before returning. 531 * flushed to the file system before returning.
524 * 532 *
525 * Throws a [FileSystemException] if the operation fails. 533 * Throws a [FileSystemException] if the operation fails.
526 */ 534 */
527 void writeAsBytesSync(List<int> bytes, 535 void writeAsBytesSync(List<int> bytes,
528 {FileMode mode: FileMode.WRITE, 536 {FileMode mode: FileMode.WRITE, bool flush: false});
529 bool flush: false});
530 537
531 /** 538 /**
532 * Write a string to a file. 539 * Write a string to a file.
533 * 540 *
534 * Opens the file, writes the string in the given encoding, and closes the 541 * Opens the file, writes the string in the given encoding, and closes the
535 * file. Returns a `Future<File>` that completes with this [File] object 542 * file. Returns a `Future<File>` that completes with this [File] object
536 * once the entire operation has completed. 543 * once the entire operation has completed.
537 * 544 *
538 * By default [writeAsString] creates the file for writing and truncates the 545 * By default [writeAsString] creates the file for writing and truncates the
539 * file if it already exists. In order to append the bytes to an existing 546 * file if it already exists. In order to append the bytes to an existing
540 * file, pass [FileMode.APPEND] as the optional mode parameter. 547 * file, pass [FileMode.APPEND] as the optional mode parameter.
541 * 548 *
542 * If the argument [flush] is set to `true`, the data written will be 549 * If the argument [flush] is set to `true`, the data written will be
543 * flushed to the file system before the returned future completes. 550 * flushed to the file system before the returned future completes.
544 * 551 *
545 */ 552 */
546 Future<File> writeAsString(String contents, 553 Future<File> writeAsString(String contents,
547 {FileMode mode: FileMode.WRITE, 554 {FileMode mode: FileMode.WRITE,
548 Encoding encoding: UTF8, 555 Encoding encoding: UTF8,
549 bool flush: false}); 556 bool flush: false});
550 557
551 /** 558 /**
552 * Synchronously write a string to a file. 559 * Synchronously write a string to a file.
553 * 560 *
554 * Opens the file, writes the string in the given encoding, and closes the 561 * Opens the file, writes the string in the given encoding, and closes the
555 * file. 562 * file.
556 * 563 *
557 * By default [writeAsStringSync] creates the file for writing and 564 * By default [writeAsStringSync] creates the file for writing and
558 * truncates the file if it already exists. In order to append the bytes 565 * truncates the file if it already exists. In order to append the bytes
559 * to an existing file, pass [FileMode.APPEND] as the optional mode 566 * to an existing file, pass [FileMode.APPEND] as the optional mode
560 * parameter. 567 * parameter.
561 * 568 *
562 * If the [flush] argument is set to `true` data written will be 569 * If the [flush] argument is set to `true` data written will be
563 * flushed to the file system before returning. 570 * flushed to the file system before returning.
564 * 571 *
565 * Throws a [FileSystemException] if the operation fails. 572 * Throws a [FileSystemException] if the operation fails.
566 */ 573 */
567 void writeAsStringSync(String contents, 574 void writeAsStringSync(String contents,
568 {FileMode mode: FileMode.WRITE, 575 {FileMode mode: FileMode.WRITE,
569 Encoding encoding: UTF8, 576 Encoding encoding: UTF8,
570 bool flush: false}); 577 bool flush: false});
571 578
572 /** 579 /**
573 * Get the path of the file. 580 * Get the path of the file.
574 */ 581 */
575 String get path; 582 String get path;
576 } 583 }
577 584
578
579 /** 585 /**
580 * `RandomAccessFile` provides random access to the data in a 586 * `RandomAccessFile` provides random access to the data in a
581 * file. 587 * file.
582 * 588 *
583 * `RandomAccessFile` objects are obtained by calling the 589 * `RandomAccessFile` objects are obtained by calling the
584 * `open` method on a [File] object. 590 * `open` method on a [File] object.
585 * 591 *
586 * A `RandomAccessFile` have both asynchronous and synchronous 592 * A `RandomAccessFile` have both asynchronous and synchronous
587 * methods. The asynchronous methods all return a `Future` 593 * methods. The asynchronous methods all return a `Future`
588 * whereas the synchronous methods will return the result directly, 594 * whereas the synchronous methods will return the result directly,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 int writeByteSync(int value); 680 int writeByteSync(int value);
675 681
676 /** 682 /**
677 * Writes from a [List<int>] to the file. It will read the buffer from index 683 * Writes from a [List<int>] to the file. It will read the buffer from index
678 * [start] to index [end]. If [start] is omitted, it'll start from index 0. 684 * [start] to index [end]. If [start] is omitted, it'll start from index 0.
679 * If [end] is omitted, it will write to end of [buffer]. 685 * If [end] is omitted, it will write to end of [buffer].
680 * 686 *
681 * Returns a `Future<RandomAccessFile>` that completes with this 687 * Returns a `Future<RandomAccessFile>` that completes with this
682 * [RandomAccessFile] when the write completes. 688 * [RandomAccessFile] when the write completes.
683 */ 689 */
684 Future<RandomAccessFile> writeFrom( 690 Future<RandomAccessFile> writeFrom(List<int> buffer,
685 List<int> buffer, [int start = 0, int end]); 691 [int start = 0, int end]);
686 692
687 /** 693 /**
688 * Synchronously writes from a [List<int>] to the file. It will read the 694 * Synchronously writes from a [List<int>] to the file. It will read the
689 * buffer from index [start] to index [end]. If [start] is omitted, it'll 695 * buffer from index [start] to index [end]. If [start] is omitted, it'll
690 * start from index 0. If [end] is omitted, it will write to the end of 696 * start from index 0. If [end] is omitted, it will write to the end of
691 * [buffer]. 697 * [buffer].
692 * 698 *
693 * Throws a [FileSystemException] if the operation fails. 699 * Throws a [FileSystemException] if the operation fails.
694 */ 700 */
695 void writeFromSync(List<int> buffer, [int start = 0, int end]); 701 void writeFromSync(List<int> buffer, [int start = 0, int end]);
696 702
697 /** 703 /**
698 * Writes a string to the file using the given [Encoding]. Returns a 704 * Writes a string to the file using the given [Encoding]. Returns a
699 * `Future<RandomAccessFile>` that completes with this 705 * `Future<RandomAccessFile>` that completes with this
700 * RandomAccessFile when the write completes. 706 * RandomAccessFile when the write completes.
701 */ 707 */
702 Future<RandomAccessFile> writeString(String string, 708 Future<RandomAccessFile> writeString(String string,
703 {Encoding encoding: UTF8}); 709 {Encoding encoding: UTF8});
704 710
705 /** 711 /**
706 * Synchronously writes a single string to the file using the given 712 * Synchronously writes a single string to the file using the given
707 * [Encoding]. 713 * [Encoding].
708 * 714 *
709 * Throws a [FileSystemException] if the operation fails. 715 * Throws a [FileSystemException] if the operation fails.
710 */ 716 */
711 void writeStringSync(String string, 717 void writeStringSync(String string, {Encoding encoding: UTF8});
712 {Encoding encoding: UTF8});
713 718
714 /** 719 /**
715 * Gets the current byte position in the file. Returns a 720 * Gets the current byte position in the file. Returns a
716 * `Future<int>` that completes with the position. 721 * `Future<int>` that completes with the position.
717 */ 722 */
718 Future<int> position(); 723 Future<int> position();
719 724
720 /** 725 /**
721 * Synchronously gets the current byte position in the file. 726 * Synchronously gets the current byte position in the file.
722 * 727 *
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 * Returns a human-readable string for this RandomAccessFile instance. 897 * Returns a human-readable string for this RandomAccessFile instance.
893 */ 898 */
894 String toString(); 899 String toString();
895 900
896 /** 901 /**
897 * Gets the path of the file underlying this RandomAccessFile. 902 * Gets the path of the file underlying this RandomAccessFile.
898 */ 903 */
899 String get path; 904 String get path;
900 } 905 }
901 906
902
903 /** 907 /**
904 * Exception thrown when a file operation fails. 908 * Exception thrown when a file operation fails.
905 */ 909 */
906 class FileSystemException implements IOException { 910 class FileSystemException implements IOException {
907 /** 911 /**
908 * Message describing the error. This does not include any detailed 912 * Message describing the error. This does not include any detailed
909 * information form the underlying OS error. Check [osError] for 913 * information form the underlying OS error. Check [osError] for
910 * that information. 914 * that information.
911 */ 915 */
912 final String message; 916 final String message;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
945 sb.write(": $osError"); 949 sb.write(": $osError");
946 if (path != null) { 950 if (path != null) {
947 sb.write(", path = '$path'"); 951 sb.write(", path = '$path'");
948 } 952 }
949 } else if (path != null) { 953 } else if (path != null) {
950 sb.write(": $path"); 954 sb.write(": $path");
951 } 955 }
952 return sb.toString(); 956 return sb.toString();
953 } 957 }
954 } 958 }
OLDNEW
« no previous file with comments | « sdk/lib/io/eventhandler.dart ('k') | sdk/lib/io/file_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698