Class BaseNCodecOutputStream<C extends BaseNCodec,T extends BaseNCodecOutputStream<C,T,B>,B extends BaseNCodecOutputStream.AbstractBuilder<T,C,B>>

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.apache.commons.codec.binary.BaseNCodecOutputStream<C,T,B>
Type Parameters:
C - A BaseNCodec subclass.
T - A BaseNCodecInputStream subclass.
B - A subclass.
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Direct Known Subclasses:
Base16OutputStream, Base32OutputStream, Base64OutputStream

public class BaseNCodecOutputStream<C extends BaseNCodec,T extends BaseNCodecOutputStream<C,T,B>,B extends BaseNCodecOutputStream.AbstractBuilder<T,C,B>> 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
See Also:
  • Constructor Details

    • BaseNCodecOutputStream

      public BaseNCodecOutputStream(OutputStream outputStream, C basedCodec, boolean doEncode)
      Constructs a new instance. 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.
    • 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.