org.vertx.java.core.file

## Interface AsyncFile

-     public interface AsyncFile

  Represents a file on the file-system which can be read from, or written to asynchronously.

  Methods also exist to get a `ReadStream` or a `WriteStream` on the file. This allows the data to be pumped to and from other streams, e.g. an `HttpClientRequest` instance, using the `Pump` class

  Instances of this class are not thread-safe

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BUFFER_SIZE`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the file.
    `void` | `close(AsyncResultHandler handler)` Close the file.
    `void` | `flush()` Flush any writes made to this file to underlying persistent storage.
    `void` | `flush(AsyncResultHandler handler)` Same as `flush()` but the handler will be called when the flush is complete or if an error occurs
    `ReadStream` | `getReadStream()` Return a `ReadStream` instance operating on this `AsyncFile`.
    `WriteStream` | `getWriteStream()` Return a `WriteStream` instance operating on this `AsyncFile`.
    `void` | `read(Buffer buffer, int offset, int position, int length, AsyncResultHandler<Buffer> handler)` Reads `length` bytes of data from the file at position `position` in the file, asynchronously.
    `void` | `write(Buffer buffer, int position, AsyncResultHandler<java.lang.Void> handler)` Write a `Buffer` to the file at position `position` in the file, asynchronously.

- - ### Field Detail

    - #### BUFFER_SIZE

          static final int BUFFER_SIZE

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### close

          void close()

      Close the file. The actual close happens asynchronously.

    - #### close

          void close(AsyncResultHandler handler)

      Close the file. The actual close happens asynchronously. The handler will be called when the close is complete, or an error occurs.

    - #### write

          void write(Buffer buffer,
                   int position,
                   AsyncResultHandler<java.lang.Void> handler)

      Write a `Buffer` to the file at position `position` in the file, asynchronously. If `position` lies outside of the current size of the file, the file will be enlarged to encompass it.

      When multiple writes are invoked on the same file there are no guarantees as to order in which those writes actually occur.

      The handler will be called when the write is complete, or if an error occurs.

    - #### read

          void read(Buffer buffer,
                  int offset,
                  int position,
                  int length,
                  AsyncResultHandler<Buffer> handler)

      Reads `length` bytes of data from the file at position `position` in the file, asynchronously. The read data will be written into the specified `Buffer buffer` at position `offset`.

      The index `position + length` must lie within the confines of the file.

      When multiple reads are invoked on the same file there are no guarantees as to order in which those reads actually occur.

      The handler will be called when the close is complete, or if an error occurs.

    - #### getWriteStream

          WriteStream getWriteStream()

      Return a `WriteStream` instance operating on this `AsyncFile`.

    - #### getReadStream

          ReadStream getReadStream()

      Return a `ReadStream` instance operating on this `AsyncFile`.

    - #### flush

          void flush()

      Flush any writes made to this file to underlying persistent storage.

      If the file was opened with `flush` set to `true` then calling this method will have no effect.

      The actual flush will happen asynchronously.

    - #### flush

          void flush(AsyncResultHandler handler)

      Same as `flush()` but the handler will be called when the flush is complete or if an error occurs
      Parameters:
        `handler` -