@Deprecated
public interface FileReadChannel
extends java.nio.channels.ReadableByteChannel
ReadableByteChannel
for reading bytes from an AppEngineFile
.
A FileReadChannel
has a current position within its file which can be both
queried
and modified
.
An instance of FileReadChannel
is obtained via the method
FileService.openReadChannel(AppEngineFile, boolean)
.
A FileReadChannel
is associated with a single App Engine request and may not be used
outside of the request in which it is constructed. Therefore an instance of
FileReadChannel
should not be cached between requests. Instead, close
the channel at the end of the request, cache the AppEngineFile
or just the
path
, and create a new FileReadChannel
in a later
request.
When a FileReadChannel
is constructed the underlying file may optionally be
locked. Successful aquisition of the lock means that no other App Engine request will be
able to read the underlying file until the lock is released. If a lock is acquired, it will be
released when the method Channel.close()
is invoked. When the request terminates,
close()
will be invoked implicitly if it has not yet been invoked explicitly.
Just like ReadableByteChannel
If one thread initiates a read operation upon a channel
then any other thread that attempts to initiate another read operation will block until the first
operation is complete. This also applies to the position()
and position(long)
apis.
Modifier and Type | Method and Description |
---|---|
long |
position()
Deprecated.
Returns this channel's file position;
|
FileReadChannel |
position(long newPosition)
Deprecated.
Sets this channel's file position.
|
long position() throws java.io.IOException
java.io.IOException
- If any problem occursFileReadChannel position(long newPosition) throws java.io.IOException
Setting the position to a value that is greater than the file's size will not result in an exception. A later attempt to read bytes at such a position will immediately return an end-of-file indication.
newPosition
- The new position, a non-negative integer counting the
number of bytes from the beginning of the filejava.lang.IllegalArgumentException
- If the new position is negativejava.io.IOException
- If any other problem occurs