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 Summary

      Constructors 
      Constructor Description
      MemoryStream()
      Create a memory stream.
      MemoryStream​(byte[] bytes)
      Create a memory stream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canRead()
      Check if the stream is readable.
      boolean canSeek()
      Check if the stream is seekable.
      boolean canWrite()
      Check if the stream is writable.
      void close()
      Close any resources the stream is using.
      void flush()
      Flush the stream.
      long getLength()
      Get the length of the stream.
      long getPosition()
      Get the current position of the stream.
      int read​(byte[] buffer, int offset, int count)
      Read a sequence of bytes into the provided buffer.
      long seek​(long offset, RandomAccessStream.SeekOrigin origin)
      Seek to a position in the stream.
      void setLength​(long value)
      Changes the length of the stream.
      void setPosition​(long value)
      Changes the current position of the stream.
      byte[] toArray()
      Convert the stream to an array:
      void write​(byte[] buffer, int offset, int count)
      Write a sequence of bytes into the stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.