Class MemoryStream


  • public class MemoryStream
    extends RandomAccessStream
    Memory Stream for seeking, reading, and writing to a memory buffer (modeled after C# MemoryStream). If the memory buffer is not specified then an internal resizable buffer will be created.
    • Constructor Detail

      • MemoryStream

        public MemoryStream​(byte[] bytes)
        Create a memory stream.
        Parameters:
        bytes - Optional existing byte array to use as backing buffer. If omitted a new backing array will be created automatically.
      • MemoryStream

        public MemoryStream()
        Create a memory stream.
    • Method Detail

      • canRead

        public boolean canRead()
        Description copied from class: RandomAccessStream
        Check if the stream is readable.
        Specified by:
        canRead in class RandomAccessStream
        Returns:
        If the stream can be used for reading.
      • canWrite

        public boolean canWrite()
        Description copied from class: RandomAccessStream
        Check if the stream is writable.
        Specified by:
        canWrite in class RandomAccessStream
        Returns:
        If the stream can be used for writing.
      • setPosition

        public void setPosition​(long value)
        Changes the current position of the stream. For more options use seek() method.
        Specified by:
        setPosition in class RandomAccessStream
        Parameters:
        value - The new position of the stream.
      • setLength

        public void setLength​(long value)
        Changes the length of the stream. The capacity of the stream might also change if the value is lesser than the current capacity.
        Specified by:
        setLength in class RandomAccessStream
        Parameters:
        value - The new file length.
      • read

        public int read​(byte[] buffer,
                        int offset,
                        int count)
                 throws java.io.IOException
        Read a sequence of bytes into the provided buffer.
        Specified by:
        read in class RandomAccessStream
        Parameters:
        buffer - The buffer to write the bytes that are read from the stream.
        offset - The offset of the buffer that will be used to write the bytes.
        count - The length of the bytes that can be read from the stream and written to the buffer.
        Returns:
        The number of bytes read.
        Throws:
        java.io.IOException - Thrown if there is an IO error.
      • write

        public void write​(byte[] buffer,
                          int offset,
                          int count)
        Write a sequence of bytes into the stream.
        Specified by:
        write in class RandomAccessStream
        Parameters:
        buffer - The buffer that the bytes will be read from.
        offset - The position offset that will be used to read from the buffer.
        count - The number of bytes that will be written to the stream.
      • seek

        public long seek​(long offset,
                         RandomAccessStream.SeekOrigin origin)
        Seek to a position in the stream.
        Specified by:
        seek in class RandomAccessStream
        Parameters:
        offset - The offset to use.
        origin - Possible Values: Begin, Current, End
        Returns:
        The new position after seeking.
      • flush

        public void flush()
        Flush the stream. Not-Applicable for memory stream.
        Specified by:
        flush in class RandomAccessStream
      • close

        public void close()
        Close any resources the stream is using. Not-Applicable for memory stream.
        Specified by:
        close in class RandomAccessStream
      • toArray

        public byte[] toArray()
        Convert the stream to an array:
        Returns:
        A byte array containing the data from the stream.