Class RtfByteArrayBuffer

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

    public final class RtfByteArrayBuffer
    extends java.io.OutputStream
    A RtfByteArrayBuffer works much like ByteArrayOutputStream but is cheaper and faster in most cases (exception: large writes when reusing buffers).
    Version:
    $Id: RtfByteArrayBuffer.java 4065 2009-09-16 23:09:11Z psoares33 $
    Author:
    Thomas Bickel (tmb99@inode.at)
    • Constructor Summary

      Constructors 
      Constructor Description
      RtfByteArrayBuffer()
      Constructs a new buffer with a default initial size of 128 bytes.
      RtfByteArrayBuffer​(int bufferSize)
      Creates a new buffer with the given initial size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void append​(byte[] a)
      Appends the given array to this buffer without copying (if possible).
      void append​(byte[][] a)
      Appends all arrays to this buffer without copying (if possible).
      void reset()
      Resets this buffer.
      long size()
      Returns the number of bytes that have been written to this buffer so far.
      byte[] toByteArray()
      Allocates a new array and copies all data that has been written to this buffer to the newly allocated array.
      byte[][] toByteArrayArray()
      Returns the internal list of byte array buffers without copying the buffer contents.
      java.lang.String toString()  
      void write​(byte[] src)
      Copies the given array to the internal buffer.
      void write​(byte[] src, int off, int len)
      Copies len bytes starting at position off from the array src to the internal buffer.
      void write​(int b)
      Copies the given byte to the internal buffer.
      long write​(java.io.InputStream in)
      Writes all bytes available in the given inputstream to this buffer.
      void writeTo​(java.io.OutputStream out)
      Writes all data that has been written to this buffer to the given output stream.
      • Methods inherited from class java.io.OutputStream

        close, flush, nullOutputStream
      • Methods inherited from class java.lang.Object

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

      • RtfByteArrayBuffer

        public RtfByteArrayBuffer()
        Constructs a new buffer with a default initial size of 128 bytes.
      • RtfByteArrayBuffer

        public RtfByteArrayBuffer​(int bufferSize)
        Creates a new buffer with the given initial size.
        Parameters:
        bufferSize - desired initial size in bytes
    • Method Detail

      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • reset

        public void reset()
        Resets this buffer.
      • size

        public long size()
        Returns the number of bytes that have been written to this buffer so far.
        Returns:
        number of bytes written to this buffer
      • write

        public void write​(int b)
        Copies the given byte to the internal buffer.
        Specified by:
        write in class java.io.OutputStream
        Parameters:
        b -
      • write

        public void write​(byte[] src)
        Copies the given array to the internal buffer.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        src -
      • write

        public void write​(byte[] src,
                          int off,
                          int len)
        Copies len bytes starting at position off from the array src to the internal buffer.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        src -
        off -
        len -
      • write

        public long write​(java.io.InputStream in)
                   throws java.io.IOException
        Writes all bytes available in the given inputstream to this buffer.
        Parameters:
        in -
        Returns:
        number of bytes written
        Throws:
        java.io.IOException
      • append

        public void append​(byte[] a)
        Appends the given array to this buffer without copying (if possible).
        Parameters:
        a -
      • append

        public void append​(byte[][] a)
        Appends all arrays to this buffer without copying (if possible).
        Parameters:
        a -
      • toByteArrayArray

        public byte[][] toByteArrayArray()
        Returns the internal list of byte array buffers without copying the buffer contents.
        Returns:
        number of bytes written
      • toByteArray

        public byte[] toByteArray()
        Allocates a new array and copies all data that has been written to this buffer to the newly allocated array.
        Returns:
        a new byte array
      • writeTo

        public void writeTo​(java.io.OutputStream out)
                     throws java.io.IOException
        Writes all data that has been written to this buffer to the given output stream.
        Parameters:
        out -
        Throws:
        java.io.IOException