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 Detail

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

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