Package com.sun.mail.util

## Class QPEncoderStream

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - com.sun.mail.util.QPEncoderStream

All Implemented Interfaces:
  `java.io.Closeable`, `java.io.Flushable`, `java.lang.AutoCloseable`

Direct Known Subclasses:
  `QEncoderStream`

    public class QPEncoderStream
    extends java.io.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

Constructors
`QPEncoderStream​(java.io.OutputStream out)` Create a QP encoder that encodes the specified input stream.
`QPEncoderStream​(java.io.OutputStream out, int bytesPerLine)` Create a QP encoder that encodes the specified input stream

### Method Summary

All Methods Instance Methods Concrete Methods
`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.io.OutputStream

`nullOutputStream`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### QPEncoderStream

    public QPEncoderStream​(java.io.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​(java.io.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 java.io.IOException

Encodes `len` bytes from the specified `byte` array starting at offset `off` to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `b` - the data.
  `off` - the start offset in the data.
  `len` - the number of bytes to write.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### write

    public void write​(byte[] b)
               throws java.io.IOException

Encodes `b.length` bytes to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `b` - the data to be written.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### write

    public void write​(int c)
               throws java.io.IOException

Encodes the specified `byte` to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `c` - the `byte`.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### flush

    public void flush()
               throws java.io.IOException

Flushes this output stream and forces any buffered output bytes to be encoded out to the stream.

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

#### close

    public void close()
               throws java.io.IOException

Forces any buffered output bytes to be encoded out to the stream and closes this output stream.

Specified by:
  `close` in interface `java.lang.AutoCloseable`
Specified by:
  `close` in interface `java.io.Closeable`
Overrides:
  `close` in class `java.io.FilterOutputStream`
Throws:
  `java.io.IOException` - for I/O errors

#### output

    protected void output​(int c,
                          boolean encode)
                   throws java.io.IOException

Throws:
  `java.io.IOException`