java.nio.channels

Class FileChannel

public abstract class FileChannel extends AbstractInterruptibleChannel implements ByteChannel, GatheringByteChannel, ScatteringByteChannel

Since: 1.4

Nested Class Summary
static classFileChannel.MapMode
Constructor Summary
protected FileChannel()
Initializes the channel.
Method Summary
abstract voidforce(boolean metaData)
msync with the disk
protected abstract voidimplCloseChannel()
Closes the channel.
FileLocklock()
Creates a file lock for the whole associated file.
abstract FileLocklock(long position, long size, boolean shared)
Creates a file lock for a region of the associated file.
abstract MappedByteBuffermap(FileChannel.MapMode mode, long position, long size)
Maps the file into the memory.
abstract longposition()
Returns the current position on the file.
abstract FileChannelposition(long newPosition)
Sets the position of the channel on the assoziated file.
abstract longread(ByteBuffer[] dsts, int offset, int length)
Reads data from the channel.
longread(ByteBuffer[] dsts)
Reads data from the channel.
abstract intread(ByteBuffer dst)
Reads data from the channel.
abstract intread(ByteBuffer dst, long position)
Reads data from the channel.
abstract longsize()
Return the size of the file thus far
abstract longtransferFrom(ReadableByteChannel src, long position, long count)
Transfers bytes from the given readable channel into this channel.
abstract longtransferTo(long position, long count, WritableByteChannel target)
Transfers bytes from this channel's file to the given writable byte channel.
abstract FileChanneltruncate(long size)
Truncates the channel's file at size.
FileLocktryLock()
Tries to aqquire alock on the whole associated file.
abstract FileLocktryLock(long position, long size, boolean shared)
Tries to aqquire a lock on a region of the associated file.
longwrite(ByteBuffer[] srcs)
Writes data to the channel.
abstract intwrite(ByteBuffer src)
Writes data to the channel.
abstract intwrite(ByteBuffer srcs, long position)
Writes data to the channel.
abstract longwrite(ByteBuffer[] srcs, int offset, int length)
Writes data to the channel.

Constructor Detail

FileChannel

protected FileChannel()
Initializes the channel.

Method Detail

force

public abstract void force(boolean metaData)
msync with the disk

Throws: ClosedChannelException If this channel is closed. IOException If an I/O error occurs.

implCloseChannel

protected abstract void implCloseChannel()
Closes the channel. This is called from @see close.

Throws: IOException If an I/O error occurs.

lock

public final FileLock lock()
Creates a file lock for the whole associated file.

Throws: 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. 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.

lock

public abstract FileLock lock(long position, long size, boolean shared)
Creates a file lock for a region of the associated file.

Throws: 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. IllegalArgumentException If the preconditions on the parameters do not hold. 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.

map

public abstract MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)
Maps the file into the memory.

Throws: IllegalArgumentException If the preconditions on the parameters do not hold. 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.

position

public abstract long position()
Returns the current position on the file.

Throws: ClosedChannelException If this channel is closed. IOException If an I/O error occurs.

position

public abstract FileChannel position(long newPosition)
Sets the position of the channel on the assoziated file.

Throws: ClosedChannelException If this channel is closed. IllegalArgumentException If newPosition is negative. IOException If an I/O error occurs.

read

public abstract long read(ByteBuffer[] dsts, int offset, int length)
Reads data from the channel.

Throws: IOException If an I/O error occurs.

read

public final long read(ByteBuffer[] dsts)
Reads data from the channel.

Throws: IOException If an I/O error occurs.

read

public abstract int read(ByteBuffer dst)
Reads data from the channel.

Throws: IOException If an I/O error occurs.

read

public abstract int read(ByteBuffer dst, long position)
Reads data from the channel.

Throws: 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. IllegalArgumentException If position is negative. IOException If an I/O error occurs. NonReadableChannelException If this channel was not opened for reading.

size

public abstract long size()
Return the size of the file thus far

Throws: ClosedChannelException If this channel is closed.

transferFrom

public abstract long transferFrom(ReadableByteChannel src, long position, long count)
Transfers bytes from the given readable channel into this channel.

Throws: 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. IllegalArgumentException If the preconditions on the parameters do not hold. 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.

transferTo

public abstract long transferTo(long position, long count, WritableByteChannel target)
Transfers bytes from this channel's file to the given writable byte channel.

Throws: 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. IllegalArgumentException If the preconditions on the parameters do not hold. 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.

truncate

public abstract FileChannel truncate(long size)
Truncates the channel's file at size.

Throws: ClosedChannelException If this channel is closed. IllegalArgumentException If size is negative. IOException If an I/O error occurs. NonWritableChannelException If this channel was not opened for writing.

tryLock

public final FileLock tryLock()
Tries to aqquire alock on the whole associated file.

Throws: ClosedChannelException If this channel is closed. 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.

tryLock

public abstract FileLock tryLock(long position, long size, boolean shared)
Tries to aqquire a lock on a region of the associated file.

Throws: ClosedChannelException If this channel is closed. IllegalArgumentException If the preconditions on the parameters do not hold. 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.

write

public final long write(ByteBuffer[] srcs)
Writes data to the channel.

Throws: IOException If an I/O error occurs.

write

public abstract int write(ByteBuffer src)
Writes data to the channel.

Throws: IOException If an I/O error occurs.

write

public abstract int write(ByteBuffer srcs, long position)
Writes data to the channel.

Throws: 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. IllegalArgumentException If position is negative. IOException If an I/O error occurs. NonWritableChannelException If this channel was not opened for writing.

write

public abstract long write(ByteBuffer[] srcs, int offset, int length)
Writes data to the channel.

Throws: IOException If an I/O error occurs.