uk.ac.starlink.util
Class Base64OutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byjava.io.FilterOutputStream
          extended byuk.ac.starlink.util.Base64OutputStream

public class Base64OutputStream
extends FilterOutputStream

An output stream filter that takes arbitrary bytes and outputs their base64 encoding. Call endBase64() close() to write out the final padding. The class also automatically puts line breaks in the output stream.

Minor modifications made for use in Starlink software: constructors now take OutputStream not PrintStream, assertion mechanism changed.


Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
Base64OutputStream(OutputStream out)
          Create a stream that does not insert line breaks.
Base64OutputStream(OutputStream out, int quadsPerLine)
           
 
Method Summary
 void close()
          This invokes endBase64() and closes the next stream downstream.
 void endBase64()
          Calling this will put the ending padding on the base64 stream, so don't call it until you have no data left.
 void write(byte[] buffer)
           
 void write(byte[] buffer, int offset, int count)
           
 void write(int oneByte)
           
 
Methods inherited from class java.io.FilterOutputStream
flush
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Base64OutputStream

public Base64OutputStream(OutputStream out)
Create a stream that does not insert line breaks. To have line breaks, use the other constructor.


Base64OutputStream

public Base64OutputStream(OutputStream out,
                          int quadsPerLine)
Parameters:
quadsPerLine - Number of 4-character blocks to write before outputting a line break. For example, for 76-characters per line, pass in 76/4 = 19.
Method Detail

write

public void write(int oneByte)
           throws IOException
Throws:
IOException

close

public void close()
           throws IOException
This invokes endBase64() and closes the next stream downstream.

Throws:
IOException

endBase64

public void endBase64()
               throws IOException
Calling this will put the ending padding on the base64 stream, so don't call it until you have no data left. The class does no unnecessary buffering, so you probably shouldn't call it at all.

Throws:
IOException

write

public void write(byte[] buffer)
           throws IOException
Throws:
IOException

write

public void write(byte[] buffer,
                  int offset,
                  int count)
           throws IOException
Throws:
IOException

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.