Class SeekableInMemoryByteChannel
- java.lang.Object
-
- org.apache.commons.compress.utils.SeekableInMemoryByteChannel
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.nio.channels.ByteChannel,java.nio.channels.Channel,java.nio.channels.ReadableByteChannel,java.nio.channels.SeekableByteChannel,java.nio.channels.WritableByteChannel
public class SeekableInMemoryByteChannel extends java.lang.Object implements java.nio.channels.SeekableByteChannel
ASeekableByteChannelimplementation that wraps a byte[].When this channel is used for writing an internal buffer grows to accommodate incoming data. A natural size limit is the value of
Integer.MAX_VALUE. Internal buffer can be accessed viaarray().- Since:
- 1.13
-
-
Constructor Summary
Constructors Constructor Description SeekableInMemoryByteChannel()Parameterless constructor - allocates internal buffer by itself.SeekableInMemoryByteChannel(byte[] data)Constructor taking a byte array.SeekableInMemoryByteChannel(int size)Constructor taking a size of storage to be allocated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]array()Obtains the array backing this channel.voidclose()booleanisOpen()longposition()java.nio.channels.SeekableByteChannelposition(long newPosition)intread(java.nio.ByteBuffer buf)longsize()java.nio.channels.SeekableByteChanneltruncate(long newSize)intwrite(java.nio.ByteBuffer b)
-
-
-
Constructor Detail
-
SeekableInMemoryByteChannel
public SeekableInMemoryByteChannel(byte[] data)
Constructor taking a byte array.This constructor is intended to be used with pre-allocated buffer or when reading from a given byte array.
- Parameters:
data- input data or pre-allocated array.
-
SeekableInMemoryByteChannel
public SeekableInMemoryByteChannel()
Parameterless constructor - allocates internal buffer by itself.
-
SeekableInMemoryByteChannel
public SeekableInMemoryByteChannel(int size)
Constructor taking a size of storage to be allocated.Creates a channel and allocates internal storage of a given size.
- Parameters:
size- size of internal buffer to allocate, in bytes.
-
-
Method Detail
-
position
public long position()
- Specified by:
positionin interfacejava.nio.channels.SeekableByteChannel
-
position
public java.nio.channels.SeekableByteChannel position(long newPosition) throws java.io.IOException
- Specified by:
positionin interfacejava.nio.channels.SeekableByteChannel- Throws:
java.io.IOException
-
size
public long size()
- Specified by:
sizein interfacejava.nio.channels.SeekableByteChannel
-
truncate
public java.nio.channels.SeekableByteChannel truncate(long newSize)
- Specified by:
truncatein interfacejava.nio.channels.SeekableByteChannel
-
read
public int read(java.nio.ByteBuffer buf) throws java.io.IOException
- Specified by:
readin interfacejava.nio.channels.ReadableByteChannel- Specified by:
readin interfacejava.nio.channels.SeekableByteChannel- Throws:
java.io.IOException
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.nio.channels.Channel- Specified by:
closein interfacejava.io.Closeable
-
isOpen
public boolean isOpen()
- Specified by:
isOpenin interfacejava.nio.channels.Channel
-
write
public int write(java.nio.ByteBuffer b) throws java.io.IOException
- Specified by:
writein interfacejava.nio.channels.SeekableByteChannel- Specified by:
writein interfacejava.nio.channels.WritableByteChannel- Throws:
java.io.IOException
-
-