| java.lang.Object sun.misc.CharacterEncoder
All known Subclasses: sun.misc.HexDumpEncoder, sun.misc.BASE64Encoder,
CharacterEncoder | abstract public class CharacterEncoder (Code) | | This class defines the encoding half of character encoders.
A character encoder is an algorithim for transforming 8 bit binary
data into text (generally 7 bit ASCII or 8 bit ISO-Latin-1 text)
for transmition over text channels such as e-mail and network news.
The character encoders have been structured around a central theme
that, in general, the encoded text has the form:
[Buffer Prefix]
[Line Prefix][encoded data atoms][Line Suffix]
[Buffer Suffix]
In the CharacterEncoder and CharacterDecoder classes, one complete
chunk of data is referred to as a buffer. Encoded buffers
are all text, and decoded buffers (sometimes just referred to as
buffers) are binary octets.
To create a custom encoder, you must, at a minimum, overide three
abstract methods in this class.
- bytesPerAtom which tells the encoder how many bytes to
send to encodeAtom
- encodeAtom which encodes the bytes sent to it as text.
- bytesPerLine which tells the encoder the maximum number of
bytes per line.
Several useful encoders have already been written and are
referenced in the See Also list below.
version: 1.30, 02/02/00 author: Chuck McManis See Also: CharacterDecoder; See Also: UCEncoder See Also: UUEncoder See Also: BASE64Encoder |
Method Summary | |
abstract protected int | bytesPerAtom() | abstract protected int | bytesPerLine() | public void | encode(InputStream inStream, OutputStream outStream) Encode bytes from the input stream, and write them as text characters
to the output stream. | public void | encode(byte aBuffer, OutputStream aStream) Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream. | public String | encode(byte aBuffer) A 'streamless' version of encode that simply takes a buffer of
bytes and returns a string containing the encoded buffer. | abstract protected void | encodeAtom(OutputStream aStream, byte someBytes, int anOffset, int aLength) Encode one "atom" of information into characters. | public void | encodeBuffer(InputStream inStream, OutputStream outStream) Encode bytes from the input stream, and write them as text characters
to the output stream. | public void | encodeBuffer(byte aBuffer, OutputStream aStream) Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream. | public String | encodeBuffer(byte aBuffer) A 'streamless' version of encode that simply takes a buffer of
bytes and returns a string containing the encoded buffer. | protected void | encodeBufferPrefix(OutputStream aStream) Encode the prefix for the entire buffer. | protected void | encodeBufferSuffix(OutputStream aStream) Encode the suffix for the entire buffer. | protected void | encodeLinePrefix(OutputStream aStream, int aLength) Encode the prefix that starts every output line. | protected void | encodeLineSuffix(OutputStream aStream) Encode the suffix that ends every output line. | protected int | readFully(InputStream in, byte buffer) This method works around the bizarre semantics of BufferedInputStream's
read method. |
bytesPerAtom | abstract protected int bytesPerAtom()(Code) | | Return the number of bytes per atom of encoding
|
bytesPerLine | abstract protected int bytesPerLine()(Code) | | Return the number of bytes that can be encoded per line
|
encode | public void encode(InputStream inStream, OutputStream outStream) throws IOException(Code) | | Encode bytes from the input stream, and write them as text characters
to the output stream. This method will run until it exhausts the
input stream, but does not print the line suffix for a final
line that is shorter than bytesPerLine().
|
encode | public void encode(byte aBuffer, OutputStream aStream) throws IOException(Code) | | Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream.
|
encode | public String encode(byte aBuffer)(Code) | | A 'streamless' version of encode that simply takes a buffer of
bytes and returns a string containing the encoded buffer.
|
encodeAtom | abstract protected void encodeAtom(OutputStream aStream, byte someBytes, int anOffset, int aLength) throws IOException(Code) | | Encode one "atom" of information into characters.
|
encodeBuffer | public void encodeBuffer(InputStream inStream, OutputStream outStream) throws IOException(Code) | | Encode bytes from the input stream, and write them as text characters
to the output stream. This method will run until it exhausts the
input stream. It differs from encode in that it will add the
line at the end of a final line that is shorter than bytesPerLine().
|
encodeBuffer | public void encodeBuffer(byte aBuffer, OutputStream aStream) throws IOException(Code) | | Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream.
|
encodeBuffer | public String encodeBuffer(byte aBuffer)(Code) | | A 'streamless' version of encode that simply takes a buffer of
bytes and returns a string containing the encoded buffer.
|
encodeBufferPrefix | protected void encodeBufferPrefix(OutputStream aStream) throws IOException(Code) | | Encode the prefix for the entire buffer. By default is simply
opens the PrintStream for use by the other functions.
|
encodeLinePrefix | protected void encodeLinePrefix(OutputStream aStream, int aLength) throws IOException(Code) | | Encode the prefix that starts every output line.
|
encodeLineSuffix | protected void encodeLineSuffix(OutputStream aStream) throws IOException(Code) | | Encode the suffix that ends every output line. By default
this method just prints a into the output stream.
|
|
|