## com.lowagie.text.rtf.document.output
Class RtfByteArrayBuffer

    java.lang.Object
      java.io.OutputStream
          com.lowagie.text.rtf.document.output.RtfByteArrayBuffer

All Implemented Interfaces:
  java.io.Closeable, java.io.Flushable

    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$
Author:
  Thomas Bickel (tmb99@inode.at)

Field Summary
`private java.util.List` `arrays`
`private byte[]` `buffer`
`private int` `pos`
`private int` `size`

Constructor Summary
`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
`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).
`private void` `flushBuffer()`
`private void` `flushBuffer(int reqSize)`
`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.
`long` `write(java.io.InputStream in)` Writes all bytes available in the given inputstream to this buffer.
`void` `write(int b)` Copies the given byte to the internal buffer.
`private void` `writeLoop(byte[] src, int off, int len)`
`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`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### arrays

    private final java.util.List arrays

### buffer

    private byte[] buffer

### pos

    private int pos

### size

    private int size

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

### flushBuffer

    private void flushBuffer()

### flushBuffer

    private void flushBuffer(int reqSize)

### 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` -

### writeLoop

    private void writeLoop(byte[] src,
                           int off,
                           int 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`

Hosted by Hostbasket