Class BaseNCodecOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.apache.commons.codec.binary.BaseNCodecOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Direct Known Subclasses:
Base16OutputStream, Base32OutputStream, Base64OutputStream

public class BaseNCodecOutputStream extends FilterOutputStream
Abstract superclass for Base-N output streams.

To write the EOF marker without closing the stream, call eof() or use an Apache Commons IO CloseShieldOutputStream.

Since:
1.5
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final BaseNCodec
     
    private final BaseNCodec.Context
     
    private final boolean
     
    private final byte[]
     

    Fields inherited from class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
    BaseNCodecOutputStream(OutputStream outputStream, BaseNCodec basedCodec, boolean doEncode)
    TODO should this be protected?
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes this output stream and releases any system resources associated with the stream.
    void
    eof()
    Writes EOF.
    void
    Flushes this output stream and forces any buffered output bytes to be written out to the stream.
    private void
    flush(boolean propagate)
    Flushes this output stream and forces any buffered output bytes to be written out to the stream.
    boolean
    Returns true if decoding behavior is strict.
    void
    write(byte[] array, int offset, int len)
    Writes len bytes from the specified b array starting at offset to this output stream.
    void
    write(int i)
    Writes the specified byte to this output stream.

    Methods inherited from class java.io.FilterOutputStream

    write

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • doEncode

      private final boolean doEncode
    • baseNCodec

      private final BaseNCodec baseNCodec
    • singleByte

      private final byte[] singleByte
    • context

      private final BaseNCodec.Context context
  • Constructor Details

    • BaseNCodecOutputStream

      public BaseNCodecOutputStream(OutputStream outputStream, BaseNCodec basedCodec, boolean doEncode)
      TODO should this be protected?
      Parameters:
      outputStream - the underlying output or null.
      basedCodec - a BaseNCodec.
      doEncode - true to encode, false to decode, TODO should be an enum?
  • Method Details

    • close

      public void close() throws IOException
      Closes this output stream and releases any system resources associated with the stream.

      To write the EOF marker without closing the stream, call eof() or use an Apache Commons IO CloseShieldOutputStream.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class FilterOutputStream
      Throws:
      IOException - if an I/O error occurs.
    • eof

      public void eof()
      Writes EOF.
      Since:
      1.11
    • flush

      public void flush() throws IOException
      Flushes this output stream and forces any buffered output bytes to be written out to the stream.
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class FilterOutputStream
      Throws:
      IOException - if an I/O error occurs.
    • flush

      private void flush(boolean propagate) throws IOException
      Flushes this output stream and forces any buffered output bytes to be written out to the stream. If propagate is true, the wrapped stream will also be flushed.
      Parameters:
      propagate - boolean flag to indicate whether the wrapped OutputStream should also be flushed.
      Throws:
      IOException - if an I/O error occurs.
    • isStrictDecoding

      public boolean isStrictDecoding()
      Returns true if decoding behavior is strict. Decoding will raise an IllegalArgumentException if trailing bits are not part of a valid encoding.

      The default is false for lenient encoding. Decoding will compose trailing bits into 8-bit bytes and discard the remainder.

      Returns:
      true if using strict decoding
      Since:
      1.15
    • write

      public void write(byte[] array, int offset, int len) throws IOException
      Writes len bytes from the specified b array starting at offset to this output stream.
      Overrides:
      write in class FilterOutputStream
      Parameters:
      array - source byte array
      offset - where to start reading the bytes
      len - maximum number of bytes to write
      Throws:
      IOException - if an I/O error occurs.
      NullPointerException - if the byte array parameter is null
      IndexOutOfBoundsException - if offset, len or buffer size are invalid
    • write

      public void write(int i) throws IOException
      Writes the specified byte to this output stream.
      Overrides:
      write in class FilterOutputStream
      Parameters:
      i - source byte
      Throws:
      IOException - if an I/O error occurs.