Class FixedArrayOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.io.Serializable, java.lang.AutoCloseable

    @Mutable
    @ThreadSafety(level=NOT_THREADSAFE)
    public final class FixedArrayOutputStream
    extends java.io.OutputStream
    implements java.io.Serializable
    This class provides an OutputStream implementation that writes data to a provided byte array. It is similar to the java.io.ByteArrayOutputStream class, except that it allows you to pass in the array that it uses, and the array will not grow over time.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      FixedArrayOutputStream​(byte[] array)
      Creates a new output stream that will write data to the provided array.
      FixedArrayOutputStream​(byte[] array, int pos, int len)
      Creates a new output stream that will write data to the provided array.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes this output stream.
      void flush()
      Flushes this output stream.
      byte[] getBackingArray()
      Retrieves the backing array used by this output stream.
      int getBytesWritten()
      Retrieves the number of bytes that have been written so far to this output stream.
      int getInitialPosition()
      Retrieves the initial position provided when this output stream was created.
      int getLength()
      Retrieves the maximum number of bytes that may be written to this output stream.
      void write​(byte[] b)
      Writes the contents of the provided array to this output stream.
      void write​(byte[] b, int off, int len)
      Writes the contents of the provided array to this output stream.
      void write​(int b)
      Writes the provided byte to this output stream.
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FixedArrayOutputStream

        public FixedArrayOutputStream​(@NotNull
                                      byte[] array)
        Creates a new output stream that will write data to the provided array. It will use the entire array.
        Parameters:
        array - The array to which data will be written. It must not be null.
      • FixedArrayOutputStream

        public FixedArrayOutputStream​(@NotNull
                                      byte[] array,
                                      int pos,
                                      int len)
        Creates a new output stream that will write data to the provided array. It will use the specified portion of the array.
        Parameters:
        array - The array to which data will be written. It must not be null.
        pos - The position at which to start writing data. It must be greater than or equal to zero and less than or equal to the length of the array.
        len - The maximum number of bytes that may be written. It must be greater than or equal to zero and less than or equal to the difference between the length of the array and the provided pos value.
    • Method Detail

      • getBackingArray

        @NotNull
        public byte[] getBackingArray()
        Retrieves the backing array used by this output stream.
        Returns:
        The backing array used by this output stream.
      • getInitialPosition

        public int getInitialPosition()
        Retrieves the initial position provided when this output stream was created.
        Returns:
        The initial position provided when this output stream was created.
      • getLength

        public int getLength()
        Retrieves the maximum number of bytes that may be written to this output stream.
        Returns:
        The maximum number of bytes that may be written to this output stream.
      • getBytesWritten

        public int getBytesWritten()
        Retrieves the number of bytes that have been written so far to this output stream.
        Returns:
        The number of bytes that have been written so far to this output stream.
      • close

        public void close()
        Closes this output stream. This has no effect.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
      • flush

        public void flush()
        Flushes this output stream. This has no effect.
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
      • write

        public void write​(int b)
                   throws java.io.IOException
        Writes the provided byte to this output stream.
        Specified by:
        write in class java.io.OutputStream
        Parameters:
        b - The byte to be written.
        Throws:
        java.io.IOException - If an attempt was made to write beyond the end of the array.
      • write

        public void write​(@NotNull
                          byte[] b)
                   throws java.io.IOException
        Writes the contents of the provided array to this output stream.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - The byte array containing the data to be written. It must not be null.
        Throws:
        java.io.IOException - If an attempt was made to write beyond the end of the array.
      • write

        public void write​(@NotNull
                          byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Writes the contents of the provided array to this output stream.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - The byte array containing the data to be written. It must not be null.
        off - The offset within the provided array of the beginning of the data to be written. It must be greater than or equal to zero and less than or equal to the length of the provided array.
        len - The number of bytes to be written. It must be greater than or equal to zero, and the sum of off and len must be less than the length of the provided array.
        Throws:
        java.io.IOException - If an attempt was made to write beyond the end of the array.