gnu.java.nio.channels

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

Constructor Summary

FileChannelImpl()

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
int
getNativeFD()
protected void
implCloseChannel()
FileLock
lock(long position, long size, boolean shared)
MappedByteBuffer
map(FileChannel.MapMode mode, long position, long size)
MappedByteBuffer
mapImpl(char mode, long position, int size)
long
position()
FileChannel
position(long newPosition)
int
read()
int
read(byte[] buffer, int offset, int length)
int
read(ByteBuffer dst)
int
read(ByteBuffer dst, long position)
long
read(ByteBuffer[] dsts, int offset, int length)
long
size()
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(byte[] buffer, int offset, int length)
void
write(int b)
int
write(ByteBuffer src)
int
write(ByteBuffer src, long position)
long
write(ByteBuffer[] srcs, int offset, int length)

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 FileChannelImpl err

in

public static FileChannelImpl in

out

public static FileChannelImpl out

Constructor Details

FileChannelImpl

public FileChannelImpl()

Method Details

available

public int available()
            throws IOException

create

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

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

getNativeFD

public int getNativeFD()
Returns:
The native file descriptor.

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

mapImpl

public MappedByteBuffer mapImpl(char mode,
                                long position,
                                int size)
            throws IOException

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(byte[] buffer,
                int offset,
                int length)
            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

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(byte[] buffer,
                  int offset,
                  int length)
            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
Specified by:
write in interface GatheringByteChannel
Overrides:
write in interface FileChannel

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.