gnu.java.nio

Class FileChannelImpl

Implemented Interfaces:
AutoCloseable, ByteChannel, Channel, Closeable, GatheringByteChannel, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel

public final class FileChannelImpl
extends FileChannel

This file is not user visible ! But alas, Java does not have a concept of friendly packages so this class is public. Instances of this class are created by invoking getChannel Upon a Input/Output/RandomAccessFile object.

Nested Class Summary

Nested classes/interfaces inherited from class java.nio.channels.FileChannel

FileChannel.MapMode

Field Summary

static int
APPEND
static int
DSYNC
static int
EXCL
static int
READ
static int
SYNC
static int
WRITE
static FileChannelImpl
err
static FileChannelImpl
in
static FileChannelImpl
out

Method Summary

int
available()
static FileChannelImpl
create(File file, int mode)
protected void
finalize()
Makes sure the Channel is properly closed.
void
force(boolean metaData)
msync with the disk
protected void
implCloseChannel()
FileLock
lock(long position, long size, boolean shared)
MappedByteBuffer
map(FileChannel.MapMode mode, long position, long size)
long
position()
FileChannel
position(long newPosition)
int
read()
int
read(ByteBuffer dst)
int
read(ByteBuffer dst, long position)
long
read(ByteBuffer[] dsts, int offset, int length)
long
size()
String
toString()
Convert this Object to a human-readable String.
long
transferFrom(ReadableByteChannel src, long position, long count)
long
transferTo(long position, long count, WritableByteChannel target)
FileChannel
truncate(long size)
FileLock
tryLock(long position, long size, boolean shared)
void
unlock(long pos, long len)
void
write(int b)
int
write(ByteBuffer src)
int
write(ByteBuffer src, long position)
long
write(ByteBuffer[] srcs, int offset, int length)
Writes a sequence of bytes to this channel from a subsequence of the given buffers

Methods inherited from class java.nio.channels.FileChannel

force, implCloseChannel, lock, lock, map, position, position, read, read, read, read, size, transferFrom, transferTo, truncate, tryLock, tryLock, write, write, write, write

Methods inherited from class java.nio.channels.spi.AbstractInterruptibleChannel

begin, close, end, implCloseChannel, isOpen

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

APPEND

public static final int APPEND
Field Value:
4

DSYNC

public static final int DSYNC
Field Value:
32

EXCL

public static final int EXCL
Field Value:
8

READ

public static final int READ
Field Value:
1

SYNC

public static final int SYNC
Field Value:
16

WRITE

public static final int WRITE
Field Value:
2

err

public static final FileChannelImpl err

in

public static final FileChannelImpl in

out

public static final FileChannelImpl out

Method Details

available

public int available()
            throws IOException

create

public static FileChannelImpl create(File file,
                                     int mode)
            throws IOException

finalize

protected void finalize()
            throws IOException
Makes sure the Channel is properly closed.
Overrides:
finalize in interface Object

force

public void force(boolean metaData)
            throws IOException
msync with the disk
Overrides:
force in interface FileChannel

implCloseChannel

protected void implCloseChannel()
            throws IOException
Overrides:
implCloseChannel in interface FileChannel

lock

public FileLock lock(long position,
                     long size,
                     boolean shared)
            throws IOException
Overrides:
lock in interface FileChannel

map

public MappedByteBuffer map(FileChannel.MapMode mode,
                            long position,
                            long size)
            throws IOException
Overrides:
map in interface FileChannel

position

public long position()
            throws IOException
Overrides:
position in interface FileChannel

position

public FileChannel position(long newPosition)
            throws IOException
Overrides:
position in interface FileChannel

read

public int read()
            throws IOException

read

public int read(ByteBuffer dst)
            throws IOException
Specified by:
read in interface ReadableByteChannel
Overrides:
read in interface FileChannel

read

public int read(ByteBuffer dst,
                long position)
            throws IOException
Overrides:
read in interface FileChannel

read

public long read(ByteBuffer[] dsts,
                 int offset,
                 int length)
            throws IOException
Specified by:
read in interface ScatteringByteChannel
Overrides:
read in interface FileChannel

size

public long size()
            throws IOException
Overrides:
size in interface FileChannel

toString

public String toString()
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() and such.

It is typical, but not required, to ensure that this method never completes abruptly with a RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).

Overrides:
toString in interface Object
Returns:
the String representing this Object, which may be null

transferFrom

public long transferFrom(ReadableByteChannel src,
                         long position,
                         long count)
            throws IOException
Overrides:
transferFrom in interface FileChannel

transferTo

public long transferTo(long position,
                       long count,
                       WritableByteChannel target)
            throws IOException
Overrides:
transferTo in interface FileChannel

truncate

public FileChannel truncate(long size)
            throws IOException
Overrides:
truncate in interface FileChannel

tryLock

public FileLock tryLock(long position,
                        long size,
                        boolean shared)
            throws IOException
Overrides:
tryLock in interface FileChannel

unlock

public void unlock(long pos,
                   long len)
            throws IOException

write

public void write(int b)
            throws IOException

write

public int write(ByteBuffer src)
            throws IOException
Specified by:
write in interface WritableByteChannel
Overrides:
write in interface FileChannel

write

public int write(ByteBuffer src,
                 long position)
            throws IOException
Overrides:
write in interface FileChannel

write

public long write(ByteBuffer[] srcs,
                  int offset,
                  int length)
            throws IOException
Writes a sequence of bytes to this channel from a subsequence of the given buffers
Specified by:
write in interface GatheringByteChannel
Overrides:
write in interface FileChannel
Throws:
IndexOutOfBoundsException - If the preconditions on the offset and length parameters do not hold
IOException - If an error occurs
NonWritableChannelException - If this channel was not opened for writing

FileChannelImpl.java -- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.