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, Base45OutputStream, Base58OutputStream, 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

      Constructs a new instance.
      Parameters:
      builder - A builder.
      Since:
      1.20.0
    • 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.

      The underlying stream is closed even if final conversion or flushing fails. If closing also fails, its exception is suppressed on the original exception.

      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 - Thrown if an I/O error occurs.
    • eof

      public void eof() throws IOException
      Notifies the decoder or encoder of EOF (-1).
      Throws:
      IOException - Thrown when a problem is detected processing data.
      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 - Thrown if an I/O error occurs.
    • isStrictDecoding

      public boolean isStrictDecoding()
      Tests whether decoding behavior is strict.

      Strict decoding rejects invalid trailing bits and, for Base32 and Base64, noncanonical input. Decoding errors are reported as IOException. To complete validation, call eof() or close(). Decoded bytes can be emitted before a later validation error.

      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 - Thrown if an I/O error occurs.
      NullPointerException - Thrown if the byte array parameter is null.
      IndexOutOfBoundsException - Thrown if the offset, length, or buffer size is 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 - Thrown if an I/O error occurs.