Class Base64.OutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, AutoCloseable
    Enclosing class:
    Base64

    public static class Base64.OutputStream
    extends java.io.FilterOutputStream
    A Base64.OutputStream will write data to another java.io.OutputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.
    Since:
    1.3
    See Also:
    Base64
    • Field Summary

      • Fields inherited from class java.io.FilterOutputStream

        out
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Flushes and closes (I think, in the superclass) the stream.
      void flushBase64()
      Method added by PHIL.
      void resumeEncoding()
      Resumes encoding of the stream.
      void suspendEncoding()
      Suspends encoding of the stream.
      void write​(byte[] theBytes, int off, int len)
      Calls write(int) repeatedly until len bytes are written.
      void write​(int theByte)
      Writes the byte to the output stream after converting to/from Base64 notation.
      • Methods inherited from class java.io.FilterOutputStream

        flush, write
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

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

      • OutputStream

        public OutputStream​(java.io.OutputStream out)
        Constructs a Base64.OutputStream in ENCODE mode.
        Parameters:
        out - the java.io.OutputStream to which data will be written.
        Since:
        1.3
      • OutputStream

        public OutputStream​(java.io.OutputStream out,
                            int options)
        Constructs a Base64.OutputStream in either ENCODE or DECODE mode.

        Valid options:

           ENCODE or DECODE: Encode or Decode as data is read.
           DONT_BREAK_LINES: don't break lines at 76 characters
             (only meaningful when encoding)
             Note: Technically, this makes your encoding non-compliant.
         

        Example: new Base64.OutputStream( out, Base64.ENCODE )

        Parameters:
        out - the java.io.OutputStream to which data will be written.
        options - Specified options.
        Since:
        1.3
        See Also:
        Base64.ENCODE, Base64.DECODE, Base64.DONT_BREAK_LINES
    • Method Detail

      • write

        public void write​(int theByte)
                   throws java.io.IOException
        Writes the byte to the output stream after converting to/from Base64 notation. When encoding, bytes are buffered three at a time before the output stream actually gets a write() call. When decoding, bytes are buffered four at a time.
        Overrides:
        write in class java.io.FilterOutputStream
        Parameters:
        theByte - the byte to write
        Throws:
        java.io.IOException
        Since:
        1.3
      • write

        public void write​(byte[] theBytes,
                          int off,
                          int len)
                   throws java.io.IOException
        Calls write(int) repeatedly until len bytes are written.
        Overrides:
        write in class java.io.FilterOutputStream
        Parameters:
        theBytes - array from which to read bytes
        off - offset for array
        len - max number of bytes to read into array
        Throws:
        java.io.IOException
        Since:
        1.3
      • flushBase64

        public void flushBase64()
                         throws java.io.IOException
        Method added by PHIL. [Thanks, PHIL. -Rob] This pads the buffer without closing the stream.
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Flushes and closes (I think, in the superclass) the stream.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
        Since:
        1.3
      • suspendEncoding

        public void suspendEncoding()
                             throws java.io.IOException
        Suspends encoding of the stream. May be helpful if you need to embed a piece of base640-encoded data in a stream.
        Throws:
        java.io.IOException
        Since:
        1.5.1
      • resumeEncoding

        public void resumeEncoding()
        Resumes encoding of the stream. May be helpful if you need to embed a piece of base640-encoded data in a stream.
        Since:
        1.5.1