Class BASE64EncoderStream

  • All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable
    Direct Known Subclasses:
    BEncoderStream

    public class BASE64EncoderStream
    extends 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 Detail

      • BASE64EncoderStream

        public BASE64EncoderStream​(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​(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 IOException
        Encodes len bytes from the specified byte array starting at offset off to this output stream.
        Overrides:
        write in class FilterOutputStream
        Parameters:
        b - the data.
        off - the start offset in the data.
        len - the number of bytes to write.
        Throws:
        IOException - if an I/O error occurs.
      • write

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

        public void write​(int c)
                   throws IOException
        Encodes the specified byte to this output stream.
        Overrides:
        write in class FilterOutputStream
        Parameters:
        c - the byte.
        Throws:
        IOException - if an I/O error occurs.
      • 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