Package loci.common

Class ByteArrayHandle

    • Field Detail

      • INITIAL_LENGTH

        protected static final int INITIAL_LENGTH
        Initial length of a new file.
        See Also:
        Constant Field Values
      • buffer

        protected ByteBuffer buffer
        Backing ByteBuffer.
    • Constructor Detail

      • ByteArrayHandle

        public ByteArrayHandle​(byte[] bytes)
        Creates a random access byte stream to read from, and write to, the bytes specified by the byte[] argument.
        Parameters:
        bytes - byte array to work with
      • ByteArrayHandle

        public ByteArrayHandle​(ByteBuffer bytes)
        Creates a random access byte stream to read from, and write to, the supplied ByteBuffer.
        Parameters:
        bytes - ByteBuffer used for reading and writing
      • ByteArrayHandle

        public ByteArrayHandle​(int capacity)
        Creates a random access byte stream to read from, and write to.
        Parameters:
        capacity - Number of bytes to initially allocate.
      • ByteArrayHandle

        public ByteArrayHandle()
        Creates a random access byte stream to write to a byte array.
    • Method Detail

      • getBytes

        public byte[] getBytes()
        Gets a byte array representing the current state of this ByteArrayHandle.
        Returns:
        a byte array representation of the backing ByteBuffer
      • getByteBuffer

        public ByteBuffer getByteBuffer()
        Gets the byte buffer backing this handle. NOTE: This is the backing buffer. Any modifications to this buffer including position, length and capacity will affect subsequent calls upon its source handle.
        Returns:
        Backing buffer of this handle.
      • close

        public void close()
        Description copied from interface: IRandomAccess
        Closes this random access stream and releases any system resources associated with the stream.
      • getFilePointer

        public long getFilePointer()
        Description copied from interface: IRandomAccess
        Returns the current offset in this stream.
        Returns:
        the current byte offset within the file; expected to be non-negative and less than the value of #length()
      • length

        public long length()
        Description copied from interface: IRandomAccess
        Returns the length of this stream.
        Returns:
        the length in bytes of the stream
      • read

        public int read​(byte[] b)
                 throws IOException
        Description copied from interface: IRandomAccess
        Reads up to b.length bytes of data from this stream into an array of bytes.
        Parameters:
        b - the array to fill from this stream
        Returns:
        the total number of bytes read into the buffer.
        Throws:
        IOException - if reading is not possible
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        Description copied from interface: IRandomAccess
        Reads up to len bytes of data from this stream into an array of bytes.
        Parameters:
        b - the array to fill from this stream
        off - the offset in b from which to start filling; expected to be non-negative and no greater than b.length - len
        len - the number of bytes to read; expected to be positive and no greater than b.length - offset
        Returns:
        the total number of bytes read into the buffer.
        Throws:
        IOException - if reading is not possible
      • read

        public int read​(ByteBuffer buf)
                 throws IOException
        Description copied from interface: IRandomAccess
        Reads up to buffer.capacity() bytes of data from this stream into a ByteBuffer.
        Parameters:
        buf - the ByteBuffer to fill from this stream
        Returns:
        the total number of bytes read into the buffer.
        Throws:
        IOException - if reading is not possible
      • read

        public int read​(ByteBuffer buf,
                        int off,
                        int len)
                 throws IOException
        Description copied from interface: IRandomAccess
        Reads up to len bytes of data from this stream into a ByteBuffer.
        Parameters:
        buf - the ByteBuffer to fill from this stream
        off - the offset in b from which to start filling; expected to be non-negative and no greater than buffer.capacity() - len
        len - the number of bytes to read; expected to be positive and no greater than buffer.capacity() - offset
        Returns:
        the total number of bytes read into the buffer.
        Throws:
        IOException - if reading is not possible
      • seek

        public void seek​(long pos)
                  throws IOException
        Description copied from interface: IRandomAccess
        Sets the stream pointer offset, measured from the beginning of this stream, at which the next read or write occurs.
        Parameters:
        pos - new byte offset (pointer) in the current stream. Unless otherwise noted, may be larger or smaller than the current pointer, but must be non-negative and less than the value of #length()
        Throws:
        IOException - if pos is invalid or the seek fails
        See Also:
        IRandomAccess.getFilePointer()
      • getOrder

        public ByteOrder getOrder()
        Description copied from interface: IRandomAccess
        Returns the current order (endianness) of the stream.
        Returns:
        See above.
      • setOrder

        public void setOrder​(ByteOrder order)
        Description copied from interface: IRandomAccess
        Sets the byte order (endianness) of the stream.
        Parameters:
        order - Order to set.
      • write

        public void write​(ByteBuffer buf)
                   throws IOException
        Description copied from interface: IRandomAccess
        Writes up to buffer.capacity() bytes of data from the given ByteBuffer to this stream.
        Parameters:
        buf - the ByteBuffer containing bytes to write to this stream
        Throws:
        IOException - if writing is not possible
      • write

        public void write​(ByteBuffer buf,
                          int off,
                          int len)
                   throws IOException
        Description copied from interface: IRandomAccess
        Writes up to len bytes of data from the given ByteBuffer to this stream.
        Parameters:
        buf - the ByteBuffer containing bytes to write to this stream
        off - the offset in b from which to start writing; expected to be non-negative and no greater than buf.capacity() - len
        len - the number of bytes to write; expected to be positive and no greater than buf.capacity() - offset
        Throws:
        IOException - if writing is not possible