@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