## net.dontdrinkandroot.utils.lang
Class FastByteArrayOutputStream

    java.lang.Object
      java.io.OutputStream
          net.dontdrinkandroot.utils.lang.FastByteArrayOutputStream

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

    public class FastByteArrayOutputStream

extends java.io.OutputStream

ByteArrayOutputStream implementation that doesn't synchronize methods and doesn't copy the data on toByteArray(). Source: http://javatechniques.com/blog/faster-deep-copies-of-java-objects/

Field Summary
`protected byte[]` `buf` Buffer and size
`protected int` `size`

Constructor Summary
`FastByteArrayOutputStream()` Constructs a stream with buffer capacity size 5K
`FastByteArrayOutputStream(int initSize)` Constructs a stream with the given initial size

Method Summary
`byte[]` `getByteArray()` Returns the byte array containing the written data.
`java.io.InputStream` `getInputStream()` Returns a ByteArrayInputStream for reading back the written data
`int` `getSize()`
`void` `reset()`
`void` `write(byte[] b)`
`void` `write(byte[] b, int off, int len)`
`void` `write(int b)`

Methods inherited from class java.io.OutputStream
`close, flush`

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

Field Detail

### buf

    protected byte[] buf

  Buffer and size

### size

    protected int size

Constructor Detail

### FastByteArrayOutputStream

    public FastByteArrayOutputStream()

  Constructs a stream with buffer capacity size 5K

### FastByteArrayOutputStream

    public FastByteArrayOutputStream(int initSize)

  Constructs a stream with the given initial size

Method Detail

### getSize

    public int getSize()

### getByteArray

    public byte[] getByteArray()

  Returns the byte array containing the written data. Note that this array will almost always be larger than the amount of data actually written.

### write

    public final void write(byte[] b)

  Overrides:
    `write` in class `java.io.OutputStream`

### write

    public final void write(byte[] b,
                            int off,
                            int len)

  Overrides:
    `write` in class `java.io.OutputStream`

### write

    public final void write(int b)

  Specified by:
    `write` in class `java.io.OutputStream`

### reset

    public void reset()

### getInputStream

    public java.io.InputStream getInputStream()

  Returns a ByteArrayInputStream for reading back the written data

Copyright © 2013 dontdrinkandroot. All Rights Reserved.