Package org.jruby.util
Class AppendModeChannel
java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.FileChannel
org.jruby.util.AppendModeChannel
- All Implemented Interfaces:
Closeable
,AutoCloseable
,ByteChannel
,Channel
,GatheringByteChannel
,InterruptibleChannel
,ReadableByteChannel
,ScatteringByteChannel
,SeekableByteChannel
,WritableByteChannel
A Channel wrapper that will seek to the end of the open file on any write()
operations by performing a seek to eof beforehand. Motivated by a+ mode which requires
RandomAccessFile in pure-Java mode but has no append option ala O_APPEND to open(2).
-
Nested Class Summary
Nested classes/interfaces inherited from class java.nio.channels.FileChannel
FileChannel.MapMode
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
force
(boolean metaData) protected void
lock
(long position, long size, boolean shared) map
(FileChannel.MapMode mode, long position, long size) long
position()
position
(long newPosition) int
read
(ByteBuffer dst) long
read
(ByteBuffer[] dsts, int offset, int length) int
read
(ByteBuffer dst, long position) long
size()
long
transferFrom
(ReadableByteChannel src, long position, long count) long
transferTo
(long position, long count, WritableByteChannel target) truncate
(long size) tryLock
(long position, long size, boolean shared) int
write
(ByteBuffer src) long
write
(ByteBuffer[] srcs, int offset, int length) int
write
(ByteBuffer src, long position) Methods inherited from class java.nio.channels.FileChannel
lock, map, open, open, read, tryLock, write
Methods inherited from class java.nio.channels.spi.AbstractInterruptibleChannel
begin, close, end, isOpen
-
Constructor Details
-
AppendModeChannel
-
-
Method Details
-
read
- Specified by:
read
in interfaceReadableByteChannel
- Specified by:
read
in interfaceSeekableByteChannel
- Specified by:
read
in classFileChannel
- Throws:
IOException
-
read
- Specified by:
read
in interfaceScatteringByteChannel
- Specified by:
read
in classFileChannel
- Throws:
IOException
-
write
- Specified by:
write
in interfaceSeekableByteChannel
- Specified by:
write
in interfaceWritableByteChannel
- Specified by:
write
in classFileChannel
- Throws:
IOException
-
write
- Specified by:
write
in interfaceGatheringByteChannel
- Specified by:
write
in classFileChannel
- Throws:
IOException
-
position
- Specified by:
position
in interfaceSeekableByteChannel
- Specified by:
position
in classFileChannel
- Throws:
IOException
-
position
- Specified by:
position
in interfaceSeekableByteChannel
- Specified by:
position
in classFileChannel
- Throws:
IOException
-
size
- Specified by:
size
in interfaceSeekableByteChannel
- Specified by:
size
in classFileChannel
- Throws:
IOException
-
truncate
- Specified by:
truncate
in interfaceSeekableByteChannel
- Specified by:
truncate
in classFileChannel
- Throws:
IOException
-
force
- Specified by:
force
in classFileChannel
- Throws:
IOException
-
transferTo
- Specified by:
transferTo
in classFileChannel
- Throws:
IOException
-
transferFrom
- Specified by:
transferFrom
in classFileChannel
- Throws:
IOException
-
read
- Specified by:
read
in classFileChannel
- Throws:
IOException
-
write
- Specified by:
write
in classFileChannel
- Throws:
IOException
-
map
- Specified by:
map
in classFileChannel
- Throws:
IOException
-
lock
- Specified by:
lock
in classFileChannel
- Throws:
IOException
-
tryLock
- Specified by:
tryLock
in classFileChannel
- Throws:
IOException
-
implCloseChannel
- Specified by:
implCloseChannel
in classAbstractInterruptibleChannel
- Throws:
IOException
-