Package org.jfree.report.util

## Class MemoryByteArrayOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - org.jfree.report.util.MemoryByteArrayOutputStream

- All Implemented Interfaces:
    `java.io.Closeable`, `java.io.Flushable`, `java.lang.AutoCloseable`

      public class MemoryByteArrayOutputStream
      extends java.io.OutputStream

  A string writer that is able to write large amounts of data. The original StringWriter contained in Java doubles its buffersize everytime the buffer overflows. This is nice with small amounts of data, but awfull for huge buffers.
  Author:
    Thomas Morgner

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MemoryByteArrayOutputStream()` | Create a new character-stream writer whose critical sections will synchronize on the writer itself.
    `MemoryByteArrayOutputStream​(int bufferSize, int maximumBufferIncrement)` | Create a new character-stream writer whose critical sections will synchronize on the writer itself.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Close the stream, flushing it first.
    `void` | `flush()` | Flush the stream.
    `int` | `getLength()` |
    `byte[]` | `getRaw()` |
    `byte[]` | `toByteArray()` |
    `void` | `write​(byte[] b)` | Writes `b.length` bytes from the specified byte array to this output stream.
    `void` | `write​(byte[] cbuf, int off, int len)` | Write a portion of an array of characters.
    `void` | `write​(int b)` | Writes the specified 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

    - #### MemoryByteArrayOutputStream

          public MemoryByteArrayOutputStream()

      Create a new character-stream writer whose critical sections will synchronize on the writer itself.

    - #### MemoryByteArrayOutputStream

          public MemoryByteArrayOutputStream​(int bufferSize,
                                             int maximumBufferIncrement)

      Create a new character-stream writer whose critical sections will synchronize on the writer itself.

  - ### Method Detail

    - #### write

          public void write​(byte[] cbuf,
                            int off,
                            int len)
                     throws java.io.IOException

      Write a portion of an array of characters.
      Overrides:
        `write` in class `java.io.OutputStream`
      Parameters:
        `cbuf` - Array of characters
        `off` - Offset from which to start writing characters
        `len` - Number of characters to write
      Throws:
        `java.io.IOException` - If an I/O error occurs

    - #### write

          public void write​(byte[] b)
                     throws java.io.IOException

      Writes `b.length` bytes from the specified byte array to this output stream. The general contract for `write(b)` is that it should have exactly the same effect as the call `write(b, 0, b.length)`.
      Overrides:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - the data.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `OutputStream.write(byte[], int, int)`

    - #### write

          public void write​(int b)
                     throws java.io.IOException

      Writes the specified byte to this output stream. The general contract for `write` is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument `b`. The 24 high-order bits of `b` are ignored.

      Subclasses of `OutputStream` must provide an implementation for this method.
      Specified by:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - the `byte`.
      Throws:
        `java.io.IOException` - if an I/O error occurs. In particular, an `IOException` may be thrown if the output stream has been closed.

    - #### flush

          public void flush()
                     throws java.io.IOException

      Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.

      If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.
      Specified by:
        `flush` in interface `java.io.Flushable`
      Overrides:
        `flush` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException` - If an I/O error occurs

    - #### close

          public void close()
                     throws java.io.IOException

      Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, 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`
      Throws:
        `java.io.IOException` - If an I/O error occurs

    - #### toByteArray

          public byte[] toByteArray()

    - #### getLength

          public int getLength()

    - #### getRaw

          public byte[] getRaw()