ORG.oclc.ecat.util
Class CharacterEncoder
java.lang.Object
|
+--ORG.oclc.ecat.util.CharacterEncoder
- Direct Known Subclasses:
- BASE64Encoder, HexDumpEncoder, UCEncoder, UUEncoder
- public abstract class CharacterEncoder
- extends Object
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.
- See Also:
- ,
UCEncoder
,
UUEncoder
,
BASE64Encoder
Method Summary |
String |
encodeBuffer(byte[] aBuffer)
A 'streamless' version of encode that simply takes a buffer of
bytes and returns a string containing the encoded buffer. |
void |
encodeBuffer(byte[] aBuffer,
OutputStream aStream)
Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream. |
void |
encodeBuffer(InputStream inStream,
OutputStream outStream)
Encode bytes from the input stream, and write them as text characters
to the output stream. |
protected int |
readFully(InputStream in,
byte[] buffer)
This method works around the bizarre semantics of BufferedInputStream's
read method. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
pStream
protected PrintStream pStream
- Stream that understands "printing"
CharacterEncoder
public CharacterEncoder()
readFully
protected int readFully(InputStream in,
byte[] buffer)
throws IOException
- This method works around the bizarre semantics of BufferedInputStream's
read method.
encodeBuffer
public void encodeBuffer(InputStream inStream,
OutputStream outStream)
throws IOException
- 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.
encodeBuffer
public void encodeBuffer(byte[] aBuffer,
OutputStream aStream)
throws IOException
- Encode the buffer in aBuffer and write the encoded
result to the OutputStream aStream.
encodeBuffer
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.