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 Details

    • 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 Details

    • canRead

      public boolean canRead()
      Description copied from class: RandomAccessStream
      True 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
      True if the stream is writable.
      Specified by:
      canWrite in class RandomAccessStream
      Returns:
      If the stream can be used for writing.
    • canSeek

      public boolean canSeek()
      Description copied from class: RandomAccessStream
      True if the stream is seekable.
      Specified by:
      canSeek in class RandomAccessStream
      Returns:
      If the stream is seekable.
    • length

      public long length()
      Description copied from class: RandomAccessStream
      Get the length of the stream.
      Specified by:
      length in class RandomAccessStream
      Returns:
      The length of the stream.
    • getPosition

      public long getPosition()
      Description copied from class: RandomAccessStream
      Get the current position of the stream.
      Specified by:
      getPosition in class RandomAccessStream
      Returns:
      The position of the stream.
    • 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 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:
      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.