com.partnersoft.formats.base64
Class Base64OutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by com.partnersoft.formats.base64.Base64OutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class Base64OutputStream
extends java.io.FilterOutputStream

OutputStream implementation to decode Base64-encoded binary data.

Much of this class was derived from v2.0.1 source published by Robert Harder at http://iharder.net/base64 and placed in the public domain. Source for this package is available on request from Partner.

Copyright 1997-2006 Partner Software, Inc.

Version:
$Id: Base64OutputStream.java 1012 2007-11-24 18:30:02Z paul $
Author:
Robert Harder, Paul Reavis, Russell Cagle

Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
Base64OutputStream(java.io.OutputStream out)
          Constructs a Base64OutputStream.
 
Method Summary
 void close()
          Flushes and closes the stream.
 void flushBase64()
          Flushes and pads the output without closing the stream.
 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.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Base64OutputStream

public Base64OutputStream(java.io.OutputStream out)
Constructs a Base64OutputStream.

Parameters:
out - the OutputStream to which data will be written.
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

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

flushBase64

public void flushBase64()
                 throws java.io.IOException
Flushes and pads the output without closing the stream.

Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Flushes and closes the stream.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.FilterOutputStream
Throws:
java.io.IOException

suspendEncoding

public void suspendEncoding()
                     throws java.io.IOException
Suspends encoding of the stream. May be helpful if you need to embed a piece of base64-encoded data in a stream.

Throws:
java.io.IOException

resumeEncoding

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