com.sun.mail.util
Class QPEncoderStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by com.sun.mail.util.QPEncoderStream
All Implemented Interfaces:
Closeable, Flushable
Direct Known Subclasses:
QEncoderStream

public class QPEncoderStream
extends FilterOutputStream

This class implements a Quoted Printable 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.

Author:
John Mani

Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
QPEncoderStream(OutputStream out)
          Create a QP encoder that encodes the specified input stream.
QPEncoderStream(OutputStream out, int bytesPerLine)
          Create a QP encoder that encodes the specified input stream
 
Method Summary
 void close()
          Forces any buffered output bytes to be encoded out to the stream and closes this output stream
 void flush()
          Flushes this output stream and forces any buffered output bytes to be encoded out to the stream.
protected  void output(int c, boolean encode)
           
 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.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QPEncoderStream

public QPEncoderStream(OutputStream out,
                       int bytesPerLine)
Create a QP encoder that encodes the specified input stream

Parameters:
out - the output stream
bytesPerLine - the number of bytes per line. The encoder inserts a CRLF sequence after this many number of bytes.

QPEncoderStream

public QPEncoderStream(OutputStream out)
Create a QP 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.

flush

public void flush()
           throws IOException
Flushes this output stream and forces any buffered output bytes to be encoded out to the stream.

Specified by:
flush in interface Flushable
Overrides:
flush in class FilterOutputStream
Throws:
IOException - if an I/O error occurs.

close

public void close()
           throws IOException
Forces any buffered output bytes to be encoded out to the stream and closes this output stream

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

output

protected void output(int c,
                      boolean encode)
               throws IOException
Throws:
IOException


Copyright © 2011 Sun Microsystems, Inc.. All Rights Reserved.