Class TemporaryBuffer.Heap

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Enclosing class:
TemporaryBuffer

public static class TemporaryBuffer.Heap extends TemporaryBuffer
A temporary buffer that will never exceed its in-memory limit.

If the in-memory limit is reached an IOException is thrown, rather than attempting to spool to local disk.

  • Constructor Details

    • Heap

      public Heap(int limit)
      Create a new heap buffer with a maximum storage limit.
      Parameters:
      limit - maximum number of bytes that can be stored in this buffer; also used as the estimated size. Storing beyond this many will cause an IOException to be thrown during write.
    • Heap

      public Heap(int estimatedSize, int limit)
      Create a new heap buffer with a maximum storage limit.
      Parameters:
      estimatedSize - estimated size of storage used, to size the initial list of block pointers.
      limit - maximum number of bytes that can be stored in this buffer. Storing beyond this many will cause an IOException to be thrown during write.
      Since:
      4.0
  • Method Details

    • overflow

      protected OutputStream overflow() throws IOException
      Description copied from class: TemporaryBuffer
      Open the overflow output stream, so the remaining output can be stored.
      Specified by:
      overflow in class TemporaryBuffer
      Returns:
      the output stream to receive the buffered content, followed by the remaining output.
      Throws:
      IOException - the buffer cannot create the overflow stream.