public interface AsyncFile extends ReadStream<Buffer>, WriteStream<Buffer>
Represents a file on the file-system which can be read from, or written to asynchronously.<p>
This class also implements ReadStream
and
WriteStream
. This allows the data to be pumped to and from
other streams, e.g. an HttpClientRequest
instance,
using the Pump
class<p>
Instances of AsyncFile are not thread-safe<p>
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the file.
|
void |
close(Handler<AsyncResult<Void>> handler)
Close the file.
|
AsyncFile |
drainHandler(Handler<Void> handler)
Set a drain handler on the stream.
|
AsyncFile |
endHandler(Handler<Void> endHandler)
Set an end handler.
|
AsyncFile |
exceptionHandler(Handler<Throwable> handler)
Set an exception handler.
|
AsyncFile |
flush()
Flush any writes made to this file to underlying persistent storage.<p>
If the file was opened with
flush set to true then calling this method will have no effect.<p>
The actual flush will happen asynchronously. |
AsyncFile |
flush(Handler<AsyncResult<Void>> handler)
Same as
flush() but the handler will be called when the flush is complete or if an error occurs |
AsyncFile |
handler(Handler<Buffer> handler)
Set a data handler.
|
AsyncFile |
pause()
Pause the
ReadSupport . |
AsyncFile |
read(Buffer buffer,
int offset,
long position,
int length,
Handler<AsyncResult<Buffer>> handler)
Reads
length bytes of data from the file at position position in the file, asynchronously. |
AsyncFile |
resume()
Resume reading.
|
AsyncFile |
setReadPos(long readPos) |
AsyncFile |
setWritePos(long readPos) |
AsyncFile |
setWriteQueueMaxSize(int maxSize)
Set the maximum size of the write queue to
maxSize . |
AsyncFile |
write(Buffer data)
Write some data to the stream.
|
AsyncFile |
write(Buffer buffer,
long position,
Handler<AsyncResult<Void>> handler)
Write a
Buffer to the file at position position in the file, asynchronously. |
writeQueueFull
AsyncFile handler(Handler<Buffer> handler)
ReadStream
Set a data handler. As data is read, the handler will be called with the data.
handler
in interface ReadStream<Buffer>
AsyncFile pause()
ReadStream
Pause the ReadSupport
. While it’s paused, no data will be sent to the dataHandler
pause
in interface ReadStream<Buffer>
AsyncFile resume()
ReadStream
Resume reading. If the ReadSupport
has been paused, reading will recommence on it.
resume
in interface ReadStream<Buffer>
AsyncFile endHandler(Handler<Void> endHandler)
ReadStream
Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.
endHandler
in interface ReadStream<Buffer>
AsyncFile write(Buffer data)
WriteStream
Write some data to the stream. The data is put on an internal write queue, and the write actually happens
asynchronously. To avoid running out of memory by putting too much on the write queue,
check the WriteStream.writeQueueFull()
method before writing. This is done automatically if using a Pump
.
write
in interface WriteStream<Buffer>
AsyncFile setWriteQueueMaxSize(int maxSize)
WriteStream
Set the maximum size of the write queue to maxSize
. You will still be able to write to the stream even
if there is more than maxSize
bytes in the write queue. This is used as an indicator by classes such as
Pump
to provide flow control.
setWriteQueueMaxSize
in interface WriteStream<Buffer>
AsyncFile drainHandler(Handler<Void> handler)
WriteStream
Set a drain handler on the stream. If the write queue is full, then the handler will be called when the write
queue has been reduced to maxSize / 2. See Pump
for an example of this being used.
drainHandler
in interface WriteStream<Buffer>
AsyncFile exceptionHandler(Handler<Throwable> handler)
StreamBase
Set an exception handler.
exceptionHandler
in interface ReadStream<Buffer>
exceptionHandler
in interface StreamBase
exceptionHandler
in interface WriteStream<Buffer>
void close()
Close the file. The actual close happens asynchronously.
void close(Handler<AsyncResult<Void>> handler)
Close the file. The actual close happens asynchronously. The handler will be called when the close is complete, or an error occurs.
AsyncFile write(Buffer buffer, long position, Handler<AsyncResult<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.<p>
When multiple writes are invoked on the same file
there are no guarantees as to order in which those writes actually occur.<p>
The handler will be called when the write is complete, or if an error occurs.
AsyncFile read(Buffer buffer, int offset, long position, int length, Handler<AsyncResult<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
.<p>
If data is read past the end of the file then zero bytes will be read.<p>
When multiple reads are invoked on the same file there are no guarantees as to order in which those reads actually occur.<p>
The handler will be called when the close is complete, or if an error occurs.
AsyncFile flush()
Flush any writes made to this file to underlying persistent storage.<p>
If the file was opened with flush
set to true
then calling this method will have no effect.<p>
The actual flush will happen asynchronously.
AsyncFile flush(Handler<AsyncResult<Void>> handler)
Same as flush()
but the handler will be called when the flush is complete or if an error occurs
AsyncFile setReadPos(long readPos)
AsyncFile setWritePos(long readPos)
Copyright © 2014. All Rights Reserved.