Class BASE64EncoderStream

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

    public class BASE64EncoderStream
    extends java.io.FilterOutputStream
    This class implements a BASE64 encoder. It is implemented as a FilterOutputStream, so one can just wrap this class around any output stream and write bytes into this filter. The encoding is done as the bytes are written out.
    • Constructor Summary

      Constructors 
      Constructor Description
      BASE64EncoderStream​(java.io.OutputStream out)
      Create a BASE64 encoder that encodes the specified input stream.
      BASE64EncoderStream​(java.io.OutputStream out, int bytesPerLine)
      Create a BASE64 encoder that encodes the specified output stream.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Forces any buffered output bytes to be encoded out to the stream and closes this output stream
      static byte[] encode​(byte[] inbuf)
      Base64 encode a byte array.
      void flush()
      Flushes this output stream and forces any buffered output bytes to be encoded out to the stream.
      void write​(byte[] b)
      Encodes b.length bytes to this output stream.
      void write​(byte[] b, int off, int len)
      Encodes len bytes from the specified byte array starting at offset off to this output stream.
      void write​(int c)
      Encodes the specified byte to this output stream.
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BASE64EncoderStream

        public BASE64EncoderStream​(java.io.OutputStream out,
                                   int bytesPerLine)
        Create a BASE64 encoder that encodes the specified output stream.
        Parameters:
        out - the output stream
        bytesPerLine - number of bytes per line. The encoder inserts a CRLF sequence after the specified number of bytes, unless bytesPerLine is Integer.MAX_VALUE, in which case no CRLF is inserted. bytesPerLine is rounded down to a multiple of 4.
      • BASE64EncoderStream

        public BASE64EncoderStream​(java.io.OutputStream out)
        Create a BASE64 encoder that encodes the specified input stream. Inserts the CRLF sequence after outputting 76 bytes.
        Parameters:
        out - the output stream
    • Method Detail

      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Encodes len bytes from the specified byte array starting at offset off to this output stream.
        Overrides:
        write in class java.io.FilterOutputStream
        Parameters:
        b - the data.
        off - the start offset in the data.
        len - the number of bytes to write.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • write

        public void write​(byte[] b)
                   throws java.io.IOException
        Encodes b.length bytes to this output stream.
        Overrides:
        write in class java.io.FilterOutputStream
        Parameters:
        b - the data to be written.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • write

        public void write​(int c)
                   throws java.io.IOException
        Encodes the specified byte to this output stream.
        Overrides:
        write in class java.io.FilterOutputStream
        Parameters:
        c - the byte.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • flush

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

        public void close()
                   throws java.io.IOException
        Forces any buffered output bytes to be encoded out to the stream and closes this output stream
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • encode

        public static byte[] encode​(byte[] inbuf)
        Base64 encode a byte array. No line breaks are inserted. This method is suitable for short strings, such as those in the IMAP AUTHENTICATE protocol, but not to encode the entire content of a MIME part.
        Parameters:
        inbuf - the byte array
        Returns:
        the encoded byte array