| 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 /** | 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 { |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 factory File(String path) => new _File(path); | 212 factory File(String path) => new _File(path); |
| 213 | 213 |
| 214 /** | 214 /** |
| 215 * Create a File object from a URI. | 215 * Create a File object from a URI. |
| 216 * | 216 * |
| 217 * If [uri] cannot reference a file this throws [UnsupportedError]. | 217 * If [uri] cannot reference a file this throws [UnsupportedError]. |
| 218 */ | 218 */ |
| 219 factory File.fromUri(Uri uri) => new File(uri.toFilePath()); | 219 factory File.fromUri(Uri uri) => new File(uri.toFilePath()); |
| 220 | 220 |
| 221 /** | 221 /** |
| 222 * Create the file. Returns a [:Future<File>:] that completes with | 222 * Create the file. Returns a `Future<File>` that completes with |
| 223 * the file when it has been created. | 223 * the file when it has been created. |
| 224 * | 224 * |
| 225 * If [recursive] is false, the default, the file is created only if | 225 * If [recursive] is false, the default, the file is created only if |
| 226 * all directories in the path exist. If [recursive] is true, all | 226 * all directories in the path exist. If [recursive] is true, all |
| 227 * non-existing path components are created. | 227 * non-existing path components are created. |
| 228 * | 228 * |
| 229 * Existing files are left untouched by [create]. Calling [create] on an | 229 * Existing files are left untouched by [create]. Calling [create] on an |
| 230 * existing file might fail if there are restrictive permissions on | 230 * existing file might fail if there are restrictive permissions on |
| 231 * the file. | 231 * the file. |
| 232 * | 232 * |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 * Synchronously copy this file. Returns a [File] | 281 * Synchronously copy this file. Returns a [File] |
| 282 * instance for the copied file. | 282 * instance for the copied file. |
| 283 * | 283 * |
| 284 * If [newPath] identifies an existing file, that file is | 284 * If [newPath] identifies an existing file, that file is |
| 285 * replaced. If [newPath] identifies an existing directory the | 285 * replaced. If [newPath] identifies an existing directory the |
| 286 * operation fails and an exception is thrown. | 286 * operation fails and an exception is thrown. |
| 287 */ | 287 */ |
| 288 File copySync(String newPath); | 288 File copySync(String newPath); |
| 289 | 289 |
| 290 /** | 290 /** |
| 291 * Get the length of the file. Returns a [:Future<int>:] that | 291 * Get the length of the file. Returns a `Future<int>` that |
| 292 * completes with the length in bytes. | 292 * completes with the length in bytes. |
| 293 */ | 293 */ |
| 294 Future<int> length(); | 294 Future<int> length(); |
| 295 | 295 |
| 296 /** | 296 /** |
| 297 * Synchronously get the length of the file. | 297 * Synchronously get the length of the file. |
| 298 * | 298 * |
| 299 * Throws a [FileSystemException] if the operation fails. | 299 * Throws a [FileSystemException] if the operation fails. |
| 300 */ | 300 */ |
| 301 int lengthSync(); | 301 int lengthSync(); |
| 302 | 302 |
| 303 /** | 303 /** |
| 304 * Returns a [File] instance whose path is the absolute path to [this]. | 304 * Returns a [File] instance whose path is the absolute path to [this]. |
| 305 * | 305 * |
| 306 * The absolute path is computed by prefixing | 306 * The absolute path is computed by prefixing |
| 307 * a relative path with the current working directory, and returning | 307 * a relative path with the current working directory, and returning |
| 308 * an absolute path unchanged. | 308 * an absolute path unchanged. |
| 309 */ | 309 */ |
| 310 File get absolute; | 310 File get absolute; |
| 311 | 311 |
| 312 /** |
| 313 * Get the last-accessed time of the file. |
| 314 * |
| 315 * Returns the date and time when the file was last accessed, if the |
| 316 * information is available. |
| 317 * |
| 318 * Throws a [FileSystemException] if the operation fails. |
| 319 */ |
| 320 Future<DateTime> lastAccessed(); |
| 321 |
| 322 /** |
| 323 * Get the last-accessed time of the file. |
| 324 * |
| 325 * Returns the date and time when the file was last accessed, |
| 326 * if the information is available. Blocks until the information can be returned |
| 327 * or it is determined that the information is not available. |
| 328 * |
| 329 * Throws a [FileSystemException] if the operation fails. |
| 330 */ |
| 331 DateTime lastAccessedSync(); |
| 332 |
| 312 /** | 333 /** |
| 313 * Get the last-modified time of the file. Returns a | 334 * Modifies the time the file was last accessed. |
| 314 * [:Future<DateTime>:] that completes with a [DateTime] object for the | 335 * |
| 315 * modification date. | 336 * Throws a [FilsSystemException] if the time cannot be set. |
| 316 */ | 337 */ |
| 338 Future setLastAccessed(DateTime time); |
| 339 |
| 340 /** |
| 341 * Synchronously modifies the time the file was last accessed. |
| 342 * |
| 343 * Throws a [FilsSystemException] if the time cannot be set. |
| 344 */ |
| 345 void setLastAccessedSync(DateTime time); |
| 346 |
| 347 /** |
| 348 * Get the last-modified time of the file. |
| 349 * |
| 350 * Returns the date and time when the file was last modified, if the |
| 351 * information is available. |
| 352 * |
| 353 * Throws a [FileSystemException] if the operation fails. |
| 354 */ |
| 317 Future<DateTime> lastModified(); | 355 Future<DateTime> lastModified(); |
| 318 | 356 |
| 319 /** | 357 /** |
| 320 * Get the last-modified time of the file. Throws an exception | 358 * Get the last-modified time of the file. |
| 321 * if the file does not exist. | 359 * |
| 322 * | 360 * Returns the date and time when the file was last modified, |
| 323 * Throws a [FileSystemException] if the operation fails. | 361 * if the information is available. Blocks until the information can be returned |
| 324 */ | 362 * or it is determined that the information is not available. |
| 363 * |
| 364 * Throws a [FileSystemException] if the operation fails. |
| 365 */ |
| 325 DateTime lastModifiedSync(); | 366 DateTime lastModifiedSync(); |
| 326 | 367 |
| 327 /** | 368 /** |
| 369 * Modifies the time the file was last modified. |
| 370 * |
| 371 * Throws a [FilsSystemException] if the time cannot be set. |
| 372 */ |
| 373 Future setLastModified(DateTime time); |
| 374 |
| 375 /** |
| 376 * Synchronously modifies the time the file was last modified. |
| 377 * |
| 378 * If the attributes cannot be set, throws a [FileSystemException]. |
| 379 */ |
| 380 void setLastModifiedSync(DateTime time); |
| 381 |
| 382 /** |
| 328 * Open the file for random access operations. Returns a | 383 * Open the file for random access operations. Returns a |
| 329 * [:Future<RandomAccessFile>:] that completes with the opened | 384 * `Future<RandomAccessFile>` that completes with the opened |
| 330 * random access file. [RandomAccessFile]s must be closed using the | 385 * random access file. [RandomAccessFile]s must be closed using the |
| 331 * [RandomAccessFile.close] method. | 386 * [RandomAccessFile.close] method. |
| 332 * | 387 * |
| 333 * Files can be opened in three modes: | 388 * Files can be opened in three modes: |
| 334 * | 389 * |
| 335 * [FileMode.READ]: open the file for reading. | 390 * [FileMode.READ]: open the file for reading. |
| 336 * | 391 * |
| 337 * [FileMode.WRITE]: open the file for both reading and writing and | 392 * [FileMode.WRITE]: open the file for both reading and writing and |
| 338 * truncate the file to length zero. If the file does not exist the | 393 * truncate the file to length zero. If the file does not exist the |
| 339 * file is created. | 394 * file is created. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 * system resources. | 431 * system resources. |
| 377 * | 432 * |
| 378 * An [IOSink] for a file can be opened in two modes: | 433 * An [IOSink] for a file can be opened in two modes: |
| 379 * | 434 * |
| 380 * * [FileMode.WRITE]: truncates the file to length zero. | 435 * * [FileMode.WRITE]: truncates the file to length zero. |
| 381 * * [FileMode.APPEND]: sets the initial write position to the end | 436 * * [FileMode.APPEND]: sets the initial write position to the end |
| 382 * of the file. | 437 * of the file. |
| 383 * | 438 * |
| 384 * When writing strings through the returned [IOSink] the encoding | 439 * When writing strings through the returned [IOSink] the encoding |
| 385 * specified using [encoding] will be used. The returned [IOSink] | 440 * specified using [encoding] will be used. The returned [IOSink] |
| 386 * has an [:encoding:] property which can be changed after the | 441 * has an `encoding` property which can be changed after the |
| 387 * [IOSink] has been created. | 442 * [IOSink] has been created. |
| 388 */ | 443 */ |
| 389 IOSink openWrite({FileMode mode: FileMode.WRITE, | 444 IOSink openWrite({FileMode mode: FileMode.WRITE, |
| 390 Encoding encoding: UTF8}); | 445 Encoding encoding: UTF8}); |
| 391 | 446 |
| 392 /** | 447 /** |
| 393 * Read the entire file contents as a list of bytes. Returns a | 448 * Read the entire file contents as a list of bytes. Returns a |
| 394 * [:Future<List<int>>:] that completes with the list of bytes that | 449 * `Future<List<int>>` that completes with the list of bytes that |
| 395 * is the contents of the file. | 450 * is the contents of the file. |
| 396 */ | 451 */ |
| 397 Future<List<int>> readAsBytes(); | 452 Future<List<int>> readAsBytes(); |
| 398 | 453 |
| 399 /** | 454 /** |
| 400 * Synchronously read the entire file contents as a list of bytes. | 455 * Synchronously read the entire file contents as a list of bytes. |
| 401 * | 456 * |
| 402 * Throws a [FileSystemException] if the operation fails. | 457 * Throws a [FileSystemException] if the operation fails. |
| 403 */ | 458 */ |
| 404 List<int> readAsBytesSync(); | 459 List<int> readAsBytesSync(); |
| 405 | 460 |
| 406 /** | 461 /** |
| 407 * Read the entire file contents as a string using the given | 462 * Read the entire file contents as a string using the given |
| 408 * [Encoding]. | 463 * [Encoding]. |
| 409 * | 464 * |
| 410 * Returns a [:Future<String>:] that completes with the string once | 465 * Returns a `Future<String>` that completes with the string once |
| 411 * the file contents has been read. | 466 * the file contents has been read. |
| 412 */ | 467 */ |
| 413 Future<String> readAsString({Encoding encoding: UTF8}); | 468 Future<String> readAsString({Encoding encoding: UTF8}); |
| 414 | 469 |
| 415 /** | 470 /** |
| 416 * Synchronously read the entire file contents as a string using the | 471 * Synchronously read the entire file contents as a string using the |
| 417 * given [Encoding]. | 472 * given [Encoding]. |
| 418 * | 473 * |
| 419 * Throws a [FileSystemException] if the operation fails. | 474 * Throws a [FileSystemException] if the operation fails. |
| 420 */ | 475 */ |
| 421 String readAsStringSync({Encoding encoding: UTF8}); | 476 String readAsStringSync({Encoding encoding: UTF8}); |
| 422 | 477 |
| 423 /** | 478 /** |
| 424 * Read the entire file contents as lines of text using the given | 479 * Read the entire file contents as lines of text using the given |
| 425 * [Encoding]. | 480 * [Encoding]. |
| 426 * | 481 * |
| 427 * Returns a [:Future<List<String>>:] that completes with the lines | 482 * Returns a `Future<List<String>>` that completes with the lines |
| 428 * once the file contents has been read. | 483 * once the file contents has been read. |
| 429 */ | 484 */ |
| 430 Future<List<String>> readAsLines({Encoding encoding: UTF8}); | 485 Future<List<String>> readAsLines({Encoding encoding: UTF8}); |
| 431 | 486 |
| 432 /** | 487 /** |
| 433 * Synchronously read the entire file contents as lines of text | 488 * Synchronously read the entire file contents as lines of text |
| 434 * using the given [Encoding]. | 489 * using the given [Encoding]. |
| 435 * | 490 * |
| 436 * Throws a [FileSystemException] if the operation fails. | 491 * Throws a [FileSystemException] if the operation fails. |
| 437 */ | 492 */ |
| 438 List<String> readAsLinesSync({Encoding encoding: UTF8}); | 493 List<String> readAsLinesSync({Encoding encoding: UTF8}); |
| 439 | 494 |
| 440 /** | 495 /** |
| 441 * Write a list of bytes to a file. | 496 * Write a list of bytes to a file. |
| 442 * | 497 * |
| 443 * Opens the file, writes the list of bytes to it, and closes the file. | 498 * Opens the file, writes the list of bytes to it, and closes the file. |
| 444 * Returns a [:Future<File>:] that completes with this [File] object once | 499 * Returns a `Future<File>` that completes with this [File] object once |
| 445 * the entire operation has completed. | 500 * the entire operation has completed. |
| 446 * | 501 * |
| 447 * By default [writeAsBytes] creates the file for writing and truncates the | 502 * By default [writeAsBytes] creates the file for writing and truncates the |
| 448 * file if it already exists. In order to append the bytes to an existing | 503 * file if it already exists. In order to append the bytes to an existing |
| 449 * file, pass [FileMode.APPEND] as the optional mode parameter. | 504 * file, pass [FileMode.APPEND] as the optional mode parameter. |
| 450 * | 505 * |
| 451 * If the argument [flush] is set to `true`, the data written will be | 506 * If the argument [flush] is set to `true`, the data written will be |
| 452 * flushed to the file system before the returned future completes. | 507 * flushed to the file system before the returned future completes. |
| 453 */ | 508 */ |
| 454 Future<File> writeAsBytes(List<int> bytes, | 509 Future<File> writeAsBytes(List<int> bytes, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 470 * Throws a [FileSystemException] if the operation fails. | 525 * Throws a [FileSystemException] if the operation fails. |
| 471 */ | 526 */ |
| 472 void writeAsBytesSync(List<int> bytes, | 527 void writeAsBytesSync(List<int> bytes, |
| 473 {FileMode mode: FileMode.WRITE, | 528 {FileMode mode: FileMode.WRITE, |
| 474 bool flush: false}); | 529 bool flush: false}); |
| 475 | 530 |
| 476 /** | 531 /** |
| 477 * Write a string to a file. | 532 * Write a string to a file. |
| 478 * | 533 * |
| 479 * Opens the file, writes the string in the given encoding, and closes the | 534 * Opens the file, writes the string in the given encoding, and closes the |
| 480 * file. Returns a [:Future<File>:] that completes with this [File] object | 535 * file. Returns a `Future<File>` that completes with this [File] object |
| 481 * once the entire operation has completed. | 536 * once the entire operation has completed. |
| 482 * | 537 * |
| 483 * By default [writeAsString] creates the file for writing and truncates the | 538 * By default [writeAsString] creates the file for writing and truncates the |
| 484 * file if it already exists. In order to append the bytes to an existing | 539 * file if it already exists. In order to append the bytes to an existing |
| 485 * file, pass [FileMode.APPEND] as the optional mode parameter. | 540 * file, pass [FileMode.APPEND] as the optional mode parameter. |
| 486 * | 541 * |
| 487 * If the argument [flush] is set to `true`, the data written will be | 542 * If the argument [flush] is set to `true`, the data written will be |
| 488 * flushed to the file system before the returned future completes. | 543 * flushed to the file system before the returned future completes. |
| 489 * | 544 * |
| 490 */ | 545 */ |
| (...skipping 28 matching lines...) Expand all Loading... |
| 519 */ | 574 */ |
| 520 String get path; | 575 String get path; |
| 521 } | 576 } |
| 522 | 577 |
| 523 | 578 |
| 524 /** | 579 /** |
| 525 * `RandomAccessFile` provides random access to the data in a | 580 * `RandomAccessFile` provides random access to the data in a |
| 526 * file. | 581 * file. |
| 527 * | 582 * |
| 528 * `RandomAccessFile` objects are obtained by calling the | 583 * `RandomAccessFile` objects are obtained by calling the |
| 529 * [:open:] method on a [File] object. | 584 * `open` method on a [File] object. |
| 530 * | 585 * |
| 531 * A `RandomAccessFile` have both asynchronous and synchronous | 586 * A `RandomAccessFile` have both asynchronous and synchronous |
| 532 * methods. The asynchronous methods all return a `Future` | 587 * methods. The asynchronous methods all return a `Future` |
| 533 * whereas the synchronous methods will return the result directly, | 588 * whereas the synchronous methods will return the result directly, |
| 534 * and block the current isolate until the result is ready. | 589 * and block the current isolate until the result is ready. |
| 535 * | 590 * |
| 536 * At most one asynchronous method can be pending on a given `RandomAccessFile` | 591 * At most one asynchronous method can be pending on a given `RandomAccessFile` |
| 537 * instance at the time. If an asynchronous method is called when one is | 592 * instance at the time. If an asynchronous method is called when one is |
| 538 * already in progress a [FileSystemException] is thrown. | 593 * already in progress a [FileSystemException] is thrown. |
| 539 * | 594 * |
| 540 * If an asynchronous method is pending it is also not possible to call any | 595 * If an asynchronous method is pending it is also not possible to call any |
| 541 * synchronous methods. This will also throw a [FileSystemException]. | 596 * synchronous methods. This will also throw a [FileSystemException]. |
| 542 */ | 597 */ |
| 543 abstract class RandomAccessFile { | 598 abstract class RandomAccessFile { |
| 544 /** | 599 /** |
| 545 * Closes the file. Returns a [:Future<RandomAccessFile>:] that | 600 * Closes the file. Returns a `Future<RandomAccessFile>` that |
| 546 * completes with this RandomAccessFile when it has been closed. | 601 * completes with this RandomAccessFile when it has been closed. |
| 547 */ | 602 */ |
| 548 Future<RandomAccessFile> close(); | 603 Future<RandomAccessFile> close(); |
| 549 | 604 |
| 550 /** | 605 /** |
| 551 * Synchronously closes the file. | 606 * Synchronously closes the file. |
| 552 * | 607 * |
| 553 * Throws a [FileSystemException] if the operation fails. | 608 * Throws a [FileSystemException] if the operation fails. |
| 554 */ | 609 */ |
| 555 void closeSync(); | 610 void closeSync(); |
| 556 | 611 |
| 557 /** | 612 /** |
| 558 * Reads a byte from the file. Returns a [:Future<int>:] that | 613 * Reads a byte from the file. Returns a `Future<int>` that |
| 559 * completes with the byte, or with -1 if end-of-file has been reached. | 614 * completes with the byte, or with -1 if end-of-file has been reached. |
| 560 */ | 615 */ |
| 561 Future<int> readByte(); | 616 Future<int> readByte(); |
| 562 | 617 |
| 563 /** | 618 /** |
| 564 * Synchronously reads a single byte from the file. If end-of-file | 619 * Synchronously reads a single byte from the file. If end-of-file |
| 565 * has been reached -1 is returned. | 620 * has been reached -1 is returned. |
| 566 * | 621 * |
| 567 * Throws a [FileSystemException] if the operation fails. | 622 * Throws a [FileSystemException] if the operation fails. |
| 568 */ | 623 */ |
| (...skipping 12 matching lines...) Expand all Loading... |
| 581 */ | 636 */ |
| 582 List<int> readSync(int bytes); | 637 List<int> readSync(int bytes); |
| 583 | 638 |
| 584 /** | 639 /** |
| 585 * Reads into an existing [List<int>] from the file. If [start] is present, | 640 * Reads into an existing [List<int>] from the file. If [start] is present, |
| 586 * the bytes will be filled into [buffer] from at index [start], otherwise | 641 * the bytes will be filled into [buffer] from at index [start], otherwise |
| 587 * index 0. If [end] is present, the [end] - [start] bytes will be read into | 642 * index 0. If [end] is present, the [end] - [start] bytes will be read into |
| 588 * [buffer], otherwise up to [buffer.length]. If [end] == [start] nothing | 643 * [buffer], otherwise up to [buffer.length]. If [end] == [start] nothing |
| 589 * happens. | 644 * happens. |
| 590 * | 645 * |
| 591 * Returns a [:Future<int>:] that completes with the number of bytes read. | 646 * Returns a `Future<int>` that completes with the number of bytes read. |
| 592 */ | 647 */ |
| 593 Future<int> readInto(List<int> buffer, [int start = 0, int end]); | 648 Future<int> readInto(List<int> buffer, [int start = 0, int end]); |
| 594 | 649 |
| 595 /** | 650 /** |
| 596 * Synchronously reads into an existing [List<int>] from the file. If [start] | 651 * Synchronously reads into an existing [List<int>] from the file. If [start] |
| 597 * is present, the bytes will be filled into [buffer] from at index [start], | 652 * is present, the bytes will be filled into [buffer] from at index [start], |
| 598 * otherwise index 0. If [end] is present, the [end] - [start] bytes will be | 653 * otherwise index 0. If [end] is present, the [end] - [start] bytes will be |
| 599 * read into [buffer], otherwise up to [buffer.length]. If [end] == [start] | 654 * read into [buffer], otherwise up to [buffer.length]. If [end] == [start] |
| 600 * nothing happens. | 655 * nothing happens. |
| 601 * | 656 * |
| 602 * Throws a [FileSystemException] if the operation fails. | 657 * Throws a [FileSystemException] if the operation fails. |
| 603 */ | 658 */ |
| 604 int readIntoSync(List<int> buffer, [int start = 0, int end]); | 659 int readIntoSync(List<int> buffer, [int start = 0, int end]); |
| 605 | 660 |
| 606 /** | 661 /** |
| 607 * Writes a single byte to the file. Returns a | 662 * Writes a single byte to the file. Returns a |
| 608 * [:Future<RandomAccessFile>:] that completes with this | 663 * `Future<RandomAccessFile>` that completes with this |
| 609 * RandomAccessFile when the write completes. | 664 * RandomAccessFile when the write completes. |
| 610 */ | 665 */ |
| 611 Future<RandomAccessFile> writeByte(int value); | 666 Future<RandomAccessFile> writeByte(int value); |
| 612 | 667 |
| 613 /** | 668 /** |
| 614 * Synchronously writes a single byte to the file. Returns the | 669 * Synchronously writes a single byte to the file. Returns the |
| 615 * number of bytes successfully written. | 670 * number of bytes successfully written. |
| 616 * | 671 * |
| 617 * Throws a [FileSystemException] if the operation fails. | 672 * Throws a [FileSystemException] if the operation fails. |
| 618 */ | 673 */ |
| 619 int writeByteSync(int value); | 674 int writeByteSync(int value); |
| 620 | 675 |
| 621 /** | 676 /** |
| 622 * Writes from a [List<int>] to the file. It will read the buffer from index | 677 * Writes from a [List<int>] to the file. It will read the buffer from index |
| 623 * [start] to index [end]. If [start] is omitted, it'll start from index 0. | 678 * [start] to index [end]. If [start] is omitted, it'll start from index 0. |
| 624 * If [end] is omitted, it will write to end of [buffer]. | 679 * If [end] is omitted, it will write to end of [buffer]. |
| 625 * | 680 * |
| 626 * Returns a [:Future<RandomAccessFile>:] that completes with this | 681 * Returns a `Future<RandomAccessFile>` that completes with this |
| 627 * [RandomAccessFile] when the write completes. | 682 * [RandomAccessFile] when the write completes. |
| 628 */ | 683 */ |
| 629 Future<RandomAccessFile> writeFrom( | 684 Future<RandomAccessFile> writeFrom( |
| 630 List<int> buffer, [int start = 0, int end]); | 685 List<int> buffer, [int start = 0, int end]); |
| 631 | 686 |
| 632 /** | 687 /** |
| 633 * Synchronously writes from a [List<int>] to the file. It will read the | 688 * Synchronously writes from a [List<int>] to the file. It will read the |
| 634 * buffer from index [start] to index [end]. If [start] is omitted, it'll | 689 * buffer from index [start] to index [end]. If [start] is omitted, it'll |
| 635 * start from index 0. If [end] is omitted, it will write to the end of | 690 * start from index 0. If [end] is omitted, it will write to the end of |
| 636 * [buffer]. | 691 * [buffer]. |
| 637 * | 692 * |
| 638 * Throws a [FileSystemException] if the operation fails. | 693 * Throws a [FileSystemException] if the operation fails. |
| 639 */ | 694 */ |
| 640 void writeFromSync(List<int> buffer, [int start = 0, int end]); | 695 void writeFromSync(List<int> buffer, [int start = 0, int end]); |
| 641 | 696 |
| 642 /** | 697 /** |
| 643 * Writes a string to the file using the given [Encoding]. Returns a | 698 * Writes a string to the file using the given [Encoding]. Returns a |
| 644 * [:Future<RandomAccessFile>:] that completes with this | 699 * `Future<RandomAccessFile>` that completes with this |
| 645 * RandomAccessFile when the write completes. | 700 * RandomAccessFile when the write completes. |
| 646 */ | 701 */ |
| 647 Future<RandomAccessFile> writeString(String string, | 702 Future<RandomAccessFile> writeString(String string, |
| 648 {Encoding encoding: UTF8}); | 703 {Encoding encoding: UTF8}); |
| 649 | 704 |
| 650 /** | 705 /** |
| 651 * Synchronously writes a single string to the file using the given | 706 * Synchronously writes a single string to the file using the given |
| 652 * [Encoding]. | 707 * [Encoding]. |
| 653 * | 708 * |
| 654 * Throws a [FileSystemException] if the operation fails. | 709 * Throws a [FileSystemException] if the operation fails. |
| 655 */ | 710 */ |
| 656 void writeStringSync(String string, | 711 void writeStringSync(String string, |
| 657 {Encoding encoding: UTF8}); | 712 {Encoding encoding: UTF8}); |
| 658 | 713 |
| 659 /** | 714 /** |
| 660 * Gets the current byte position in the file. Returns a | 715 * Gets the current byte position in the file. Returns a |
| 661 * [:Future<int>:] that completes with the position. | 716 * `Future<int>` that completes with the position. |
| 662 */ | 717 */ |
| 663 Future<int> position(); | 718 Future<int> position(); |
| 664 | 719 |
| 665 /** | 720 /** |
| 666 * Synchronously gets the current byte position in the file. | 721 * Synchronously gets the current byte position in the file. |
| 667 * | 722 * |
| 668 * Throws a [FileSystemException] if the operation fails. | 723 * Throws a [FileSystemException] if the operation fails. |
| 669 */ | 724 */ |
| 670 int positionSync(); | 725 int positionSync(); |
| 671 | 726 |
| 672 /** | 727 /** |
| 673 * Sets the byte position in the file. Returns a | 728 * Sets the byte position in the file. Returns a |
| 674 * [:Future<RandomAccessFile>:] that completes with this | 729 * `Future<RandomAccessFile>` that completes with this |
| 675 * RandomAccessFile when the position has been set. | 730 * RandomAccessFile when the position has been set. |
| 676 */ | 731 */ |
| 677 Future<RandomAccessFile> setPosition(int position); | 732 Future<RandomAccessFile> setPosition(int position); |
| 678 | 733 |
| 679 /** | 734 /** |
| 680 * Synchronously sets the byte position in the file. | 735 * Synchronously sets the byte position in the file. |
| 681 * | 736 * |
| 682 * Throws a [FileSystemException] if the operation fails. | 737 * Throws a [FileSystemException] if the operation fails. |
| 683 */ | 738 */ |
| 684 void setPositionSync(int position); | 739 void setPositionSync(int position); |
| 685 | 740 |
| 686 /** | 741 /** |
| 687 * Truncates (or extends) the file to [length] bytes. Returns a | 742 * Truncates (or extends) the file to [length] bytes. Returns a |
| 688 * [:Future<RandomAccessFile>:] that completes with this | 743 * `Future<RandomAccessFile>` that completes with this |
| 689 * RandomAccessFile when the truncation has been performed. | 744 * RandomAccessFile when the truncation has been performed. |
| 690 */ | 745 */ |
| 691 Future<RandomAccessFile> truncate(int length); | 746 Future<RandomAccessFile> truncate(int length); |
| 692 | 747 |
| 693 /** | 748 /** |
| 694 * Synchronously truncates (or extends) the file to [length] bytes. | 749 * Synchronously truncates (or extends) the file to [length] bytes. |
| 695 * | 750 * |
| 696 * Throws a [FileSystemException] if the operation fails. | 751 * Throws a [FileSystemException] if the operation fails. |
| 697 */ | 752 */ |
| 698 void truncateSync(int length); | 753 void truncateSync(int length); |
| 699 | 754 |
| 700 /** | 755 /** |
| 701 * Gets the length of the file. Returns a [:Future<int>:] that | 756 * Gets the length of the file. Returns a `Future<int>` that |
| 702 * completes with the length in bytes. | 757 * completes with the length in bytes. |
| 703 */ | 758 */ |
| 704 Future<int> length(); | 759 Future<int> length(); |
| 705 | 760 |
| 706 /** | 761 /** |
| 707 * Synchronously gets the length of the file. | 762 * Synchronously gets the length of the file. |
| 708 * | 763 * |
| 709 * Throws a [FileSystemException] if the operation fails. | 764 * Throws a [FileSystemException] if the operation fails. |
| 710 */ | 765 */ |
| 711 int lengthSync(); | 766 int lengthSync(); |
| 712 | 767 |
| 713 /** | 768 /** |
| 714 * Flushes the contents of the file to disk. Returns a | 769 * Flushes the contents of the file to disk. Returns a |
| 715 * [:Future<RandomAccessFile>:] that completes with this | 770 * `Future<RandomAccessFile>` that completes with this |
| 716 * RandomAccessFile when the flush operation completes. | 771 * RandomAccessFile when the flush operation completes. |
| 717 */ | 772 */ |
| 718 Future<RandomAccessFile> flush(); | 773 Future<RandomAccessFile> flush(); |
| 719 | 774 |
| 720 /** | 775 /** |
| 721 * Synchronously flushes the contents of the file to disk. | 776 * Synchronously flushes the contents of the file to disk. |
| 722 * | 777 * |
| 723 * Throws a [FileSystemException] if the operation fails. | 778 * Throws a [FileSystemException] if the operation fails. |
| 724 */ | 779 */ |
| 725 void flushSync(); | 780 void flushSync(); |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 890 sb.write(": $osError"); | 945 sb.write(": $osError"); |
| 891 if (path != null) { | 946 if (path != null) { |
| 892 sb.write(", path = '$path'"); | 947 sb.write(", path = '$path'"); |
| 893 } | 948 } |
| 894 } else if (path != null) { | 949 } else if (path != null) { |
| 895 sb.write(": $path"); | 950 sb.write(": $path"); |
| 896 } | 951 } |
| 897 return sb.toString(); | 952 return sb.toString(); |
| 898 } | 953 } |
| 899 } | 954 } |
| OLD | NEW |