public abstract class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements ByteChannel, GatheringByteChannel, ScatteringByteChannel
| Modifier and Type | Class and Description |
|---|---|
static class |
FileChannel.MapMode |
| Modifier | Constructor and Description |
|---|---|
protected |
FileChannel()
Initializes the channel.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
force(boolean metaData)
msync with the disk
|
protected abstract void |
implCloseChannel()
Closes the channel.
|
FileLock |
lock()
Creates a file lock for the whole associated file.
|
abstract FileLock |
lock(long position,
long size,
boolean shared)
Creates a file lock for a region of the associated file.
|
abstract java.nio.MappedByteBuffer |
map(FileChannel.MapMode mode,
long position,
long size)
Maps the file into the memory.
|
abstract long |
position()
Returns the current position on the file.
|
abstract FileChannel |
position(long newPosition)
Sets the position of the channel on the assoziated file.
|
abstract int |
read(java.nio.ByteBuffer dst)
Reads data from the channel.
|
long |
read(java.nio.ByteBuffer[] dsts)
Reads data from the channel.
|
abstract long |
read(java.nio.ByteBuffer[] dsts,
int offset,
int length)
Reads data from the channel.
|
abstract int |
read(java.nio.ByteBuffer dst,
long position)
Reads data from the channel.
|
abstract long |
size()
Return the size of the file thus far
|
abstract long |
transferFrom(ReadableByteChannel src,
long position,
long count)
Transfers bytes from the given readable channel into this channel.
|
abstract long |
transferTo(long position,
long count,
WritableByteChannel target)
Transfers bytes from this channel's file to the given writable byte
channel.
|
abstract FileChannel |
truncate(long size)
Truncates the channel's file at
size. |
FileLock |
tryLock()
Tries to aqquire alock on the whole associated file.
|
abstract FileLock |
tryLock(long position,
long size,
boolean shared)
Tries to aqquire a lock on a region of the associated file.
|
abstract int |
write(java.nio.ByteBuffer src)
Writes data to the channel.
|
long |
write(java.nio.ByteBuffer[] srcs)
Writes data to the channel.
|
abstract long |
write(java.nio.ByteBuffer[] srcs,
int offset,
int length)
Writes data to the channel.
|
abstract int |
write(java.nio.ByteBuffer srcs,
long position)
Writes data to the channel.
|
begin, close, end, isOpenprotected FileChannel()
public abstract java.nio.MappedByteBuffer map(FileChannel.MapMode mode, long position, long size) throws java.io.IOException
java.lang.IllegalArgumentException - If the preconditions on the parameters
do not hold.java.io.IOException - If an I/O error occurs.NonReadableChannelException - If mode is READ_ONLY but this channel was
not opened for reading.NonWritableChannelException - If mode is READ_WRITE or PRIVATE but this
channel was not opened for writing.public abstract long size() throws java.io.IOException
ClosedChannelException - If this channel is closed.java.io.IOExceptionpublic final long write(java.nio.ByteBuffer[] srcs) throws java.io.IOException
write in interface GatheringByteChanneljava.io.IOException - If an I/O error occurs.public abstract int write(java.nio.ByteBuffer src) throws java.io.IOException
write in interface WritableByteChanneljava.io.IOException - If an I/O error occurs.public abstract int write(java.nio.ByteBuffer srcs, long position) throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedByInterruptException - If another thread interrupts the
current thread while the transfer is in progress, thereby closing both
channels and setting the current thread's interrupt status.ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If position is negative.java.io.IOException - If an I/O error occurs.NonWritableChannelException - If this channel was not opened for
writing.public abstract long write(java.nio.ByteBuffer[] srcs, int offset, int length) throws java.io.IOException
write in interface GatheringByteChanneljava.io.IOException - If an I/O error occurs.public abstract long read(java.nio.ByteBuffer[] dsts, int offset, int length) throws java.io.IOException
read in interface ScatteringByteChanneljava.io.IOException - If an I/O error occurs.public final long read(java.nio.ByteBuffer[] dsts) throws java.io.IOException
read in interface ScatteringByteChanneljava.io.IOException - If an I/O error occurs.public abstract int read(java.nio.ByteBuffer dst) throws java.io.IOException
read in interface ReadableByteChanneldst - the buffer to put the read data intojava.io.IOException - If an I/O error occurs.public abstract int read(java.nio.ByteBuffer dst, long position) throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedByInterruptException - If another thread interrupts the
current thread while the transfer is in progress, thereby closing both
channels and setting the current thread's interrupt status.ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If position is negative.java.io.IOException - If an I/O error occurs.NonReadableChannelException - If this channel was not opened for
reading.protected abstract void implCloseChannel() throws java.io.IOException
implCloseChannel in class java.nio.channels.spi.AbstractInterruptibleChanneljava.io.IOException - If an I/O error occurs.public abstract void force(boolean metaData) throws java.io.IOException
ClosedChannelException - If this channel is closed.java.io.IOException - If an I/O error occurs.public final FileLock lock() throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedChannelException - If this channel is closed.FileLockInterruptionException - If the invoking thread is
interrupted while blocked in this method.java.io.IOException - If an I/O error occurs.NonReadableChannelException - If shared is true and this channel
was not opened for reading.NonWritableChannelException - If shared is false and this channel
was not opened for writing.OverlappingFileLockException - If a lock that overlaps the
requested region is already held by this Java virtual machine, or if
another thread is already blocked in this method and is attempting to lock
an overlapping region.public abstract FileLock lock(long position, long size, boolean shared) throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedChannelException - If this channel is closed.FileLockInterruptionException - If the invoking thread is
interrupted while blocked in this method.java.lang.IllegalArgumentException - If the preconditions on the parameters
do not hold.java.io.IOException - If an I/O error occurs.OverlappingFileLockException - If a lock that overlaps the
requested region is already held by this Java virtual machine, or if
another thread is already blocked in this method and is attempting to lock
an overlapping region.NonReadableChannelException - If shared is true and this channel
was not opened for reading.NonWritableChannelException - If shared is false and this channel
was not opened for writing.public final FileLock tryLock() throws java.io.IOException
ClosedChannelException - If this channel is closed.java.io.IOException - If an I/O error occurs.OverlappingFileLockException - If a lock that overlaps the
requested region is already held by this Java virtual machine, or if
another thread is already blocked in this method and is attempting to lock
an overlapping region.public abstract FileLock tryLock(long position, long size, boolean shared) throws java.io.IOException
ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If the preconditions on the parameters
do not hold.java.io.IOException - If an I/O error occurs.OverlappingFileLockException - If a lock that overlaps the
requested region is already held by this Java virtual machine, or if
another thread is already blocked in this method and is attempting to lock
an overlapping region.public abstract long position() throws java.io.IOException
ClosedChannelException - If this channel is closed.java.io.IOException - If an I/O error occurs.public abstract FileChannel position(long newPosition) throws java.io.IOException
ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If newPosition is negative.java.io.IOException - If an I/O error occurs.public abstract long transferTo(long position, long count, WritableByteChannel target) throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedByInterruptException - If another thread interrupts the
current thread while the transfer is in progress, thereby closing both
channels and setting the current thread's interrupt status.ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If the preconditions on the parameters
do not hold.java.io.IOException - If an I/O error occurs.NonReadableChannelException - If this channel was not opened for
reading.NonWritableChannelException - If the target channel was not
opened for writing.public abstract long transferFrom(ReadableByteChannel src, long position, long count) throws java.io.IOException
AsynchronousCloseException - If another thread closes this channel
while the transfer is in progress.ClosedByInterruptException - If another thread interrupts the
current thread while the transfer is in progress, thereby closing both
channels and setting the current thread's interrupt status.ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If the preconditions on the parameters
do not hold.java.io.IOException - If an I/O error occurs.NonReadableChannelException - If the source channel was not
opened for reading.NonWritableChannelException - If this channel was not opened for
writing.public abstract FileChannel truncate(long size) throws java.io.IOException
size.ClosedChannelException - If this channel is closed.java.lang.IllegalArgumentException - If size is negative.java.io.IOException - If an I/O error occurs.NonWritableChannelException - If this channel was not opened for
writing.