Class FastByteArrayOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable
    Direct Known Subclasses:
    ResizeableFastByteArrayOutputStream

    public class FastByteArrayOutputStream
    extends java.io.OutputStream
    ByteArrayOutputStream implementation that doesn't synchronize methods and doesn't copy the data on toByteArray(). Furthermore, no capacity changes are allowed. Once the initial capacity it set, it is assumed final!
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected byte[] buf
      Buffer and size
      protected int size  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] getByteArray()
      Returns the byte array containing 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, nullOutputStream
      • 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 void write​(byte[] b)
        Overrides:
        write in class java.io.OutputStream
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
        Overrides:
        write in class java.io.OutputStream
      • write

        public void write​(int b)
        Specified by:
        write in class java.io.OutputStream
      • reset

        public void reset()