| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 * FileMode describes the modes in which a file can be opened. | 8 * FileMode describes the modes in which a file can be opened. |
| 9 */ | 9 */ |
| 10 class FileMode { | 10 class FileMode { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 * | 23 * |
| 24 * * Use streaming: read the contents of the file from the [Stream] | 24 * * Use streaming: read the contents of the file from the [Stream] |
| 25 * this.[openRead]() and write to the file by writing to the [IOSink] | 25 * this.[openRead]() and write to the file by writing to the [IOSink] |
| 26 * this.[openWrite](). | 26 * this.[openWrite](). |
| 27 * * Open the file for random access operations using [open]. | 27 * * Open the file for random access operations using [open]. |
| 28 */ | 28 */ |
| 29 abstract class File extends FileSystemEntity { | 29 abstract class File extends FileSystemEntity { |
| 30 /** | 30 /** |
| 31 * Create a File object. | 31 * Create a File object. |
| 32 */ | 32 */ |
| 33 factory File(String name) => new _File(name); | 33 factory File(String path) => new _File(path); |
| 34 | 34 |
| 35 /** | 35 /** |
| 36 * Create a File object from a Path object. | 36 * Create a File object from a Path object. |
| 37 */ | 37 */ |
| 38 factory File.fromPath(Path path) => new _File.fromPath(path); | 38 factory File.fromPath(Path path) => new _File.fromPath(path); |
| 39 | 39 |
| 40 /** | 40 /** |
| 41 * Check if the file exists. Returns a | 41 * Check if the file exists. Returns a |
| 42 * [:Future<bool>:] that completes when the answer is known. | 42 * [:Future<bool>:] that completes when the answer is known. |
| 43 */ | 43 */ |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 * Synchronously open the file for random access operations. The | 136 * Synchronously open the file for random access operations. The |
| 137 * result is a [RandomAccessFile] on which random access operations | 137 * result is a [RandomAccessFile] on which random access operations |
| 138 * can be performed. Opened [RandomAccessFile]s must be closed using | 138 * can be performed. Opened [RandomAccessFile]s must be closed using |
| 139 * the [RandomAccessFile.close] method. | 139 * the [RandomAccessFile.close] method. |
| 140 * | 140 * |
| 141 * See [open] for information on the [mode] argument. | 141 * See [open] for information on the [mode] argument. |
| 142 */ | 142 */ |
| 143 RandomAccessFile openSync([FileMode mode = FileMode.READ]); | 143 RandomAccessFile openSync([FileMode mode = FileMode.READ]); |
| 144 | 144 |
| 145 /** | 145 /** |
| 146 * Get the canonical full path corresponding to the file name. | 146 * Get the canonical full path corresponding to the file path. |
| 147 * Returns a [:Future<String>:] that completes with the path. | 147 * Returns a [:Future<String>:] that completes with the path. |
| 148 */ | 148 */ |
| 149 Future<String> fullPath(); | 149 Future<String> fullPath(); |
| 150 | 150 |
| 151 /** | 151 /** |
| 152 * Synchronously get the canonical full path corresponding to the file name. | 152 * Synchronously get the canonical full path corresponding to the file path. |
| 153 */ | 153 */ |
| 154 String fullPathSync(); | 154 String fullPathSync(); |
| 155 | 155 |
| 156 /** | 156 /** |
| 157 * Create a new independent [Stream](../dart_async/Stream.html) for the | 157 * Create a new independent [Stream](../dart_async/Stream.html) for the |
| 158 * contents of this file. | 158 * contents of this file. |
| 159 * | 159 * |
| 160 * In order to make sure that system resources are freed, the stream | 160 * In order to make sure that system resources are freed, the stream |
| 161 * must be read to completion or the subscription on the stream must | 161 * must be read to completion or the subscription on the stream must |
| 162 * be cancelled. | 162 * be cancelled. |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 * By default [writeAsStringSync] creates the file for writing and | 267 * By default [writeAsStringSync] creates the file for writing and |
| 268 * truncates the file if it already exists. In order to append the bytes | 268 * truncates the file if it already exists. In order to append the bytes |
| 269 * to an existing file, pass [FileMode.APPEND] as the optional mode | 269 * to an existing file, pass [FileMode.APPEND] as the optional mode |
| 270 * parameter. | 270 * parameter. |
| 271 */ | 271 */ |
| 272 void writeAsStringSync(String contents, | 272 void writeAsStringSync(String contents, |
| 273 {FileMode mode: FileMode.WRITE, | 273 {FileMode mode: FileMode.WRITE, |
| 274 Encoding encoding: Encoding.UTF_8}); | 274 Encoding encoding: Encoding.UTF_8}); |
| 275 | 275 |
| 276 /** | 276 /** |
| 277 * Get the name of the file. | 277 * Get the path of the file. |
| 278 */ | 278 */ |
| 279 String get name; | 279 String get path; |
| 280 } | 280 } |
| 281 | 281 |
| 282 | 282 |
| 283 /** | 283 /** |
| 284 * [RandomAccessFile] provides random access to the data in a | 284 * [RandomAccessFile] provides random access to the data in a |
| 285 * file. [RandomAccessFile] objects are obtained by calling the | 285 * file. [RandomAccessFile] objects are obtained by calling the |
| 286 * [:open:] method on a [File] object. | 286 * [:open:] method on a [File] object. |
| 287 */ | 287 */ |
| 288 abstract class RandomAccessFile { | 288 abstract class RandomAccessFile { |
| 289 /** | 289 /** |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 * Synchronously flushes the contents of the file to disk. | 437 * Synchronously flushes the contents of the file to disk. |
| 438 */ | 438 */ |
| 439 void flushSync(); | 439 void flushSync(); |
| 440 | 440 |
| 441 /** | 441 /** |
| 442 * Returns a human-readable string for this RandomAccessFile instance. | 442 * Returns a human-readable string for this RandomAccessFile instance. |
| 443 */ | 443 */ |
| 444 String toString(); | 444 String toString(); |
| 445 | 445 |
| 446 /** | 446 /** |
| 447 * Gets the name of the file underlying this RandomAccessFile. | 447 * Gets the path of the file underlying this RandomAccessFile. |
| 448 */ | 448 */ |
| 449 String get name; | 449 String get path; |
| 450 } | 450 } |
| 451 | 451 |
| 452 | 452 |
| 453 class FileIOException implements Exception { | 453 class FileIOException implements Exception { |
| 454 const FileIOException([String this.message = "", | 454 const FileIOException([String this.message = "", |
| 455 OSError this.osError = null]); | 455 OSError this.osError = null]); |
| 456 String toString() { | 456 String toString() { |
| 457 StringBuffer sb = new StringBuffer(); | 457 StringBuffer sb = new StringBuffer(); |
| 458 sb.add("FileIOException"); | 458 sb.add("FileIOException"); |
| 459 if (!message.isEmpty) { | 459 if (!message.isEmpty) { |
| 460 sb.add(": $message"); | 460 sb.add(": $message"); |
| 461 if (osError != null) { | 461 if (osError != null) { |
| 462 sb.add(" ($osError)"); | 462 sb.add(" ($osError)"); |
| 463 } | 463 } |
| 464 } else if (osError != null) { | 464 } else if (osError != null) { |
| 465 sb.add(": osError"); | 465 sb.add(": osError"); |
| 466 } | 466 } |
| 467 return sb.toString(); | 467 return sb.toString(); |
| 468 } | 468 } |
| 469 final String message; | 469 final String message; |
| 470 final OSError osError; | 470 final OSError osError; |
| 471 } | 471 } |
| OLD | NEW |