public final class DotTerminatedMessageReader
extends java.io.Reader
This class handles stripping of the duplicate period at the beginning of lines starting with a period, converts NETASCII newlines to the local line separator format, truncates the end of message indicator, and ensures you cannot read past the end of the message.
Constructor and Description |
---|
DotTerminatedMessageReader(java.io.Reader reader)
Creates a DotTerminatedMessageReader that wraps an existing Reader
input source.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the message for reading.
|
int |
read()
Reads and returns the next character in the message.
|
int |
read(char[] buffer)
Reads the next characters from the message into an array and
returns the number of characters read.
|
int |
read(char[] buffer,
int offset,
int length)
Reads the next characters from the message into an array and
returns the number of characters read.
|
boolean |
ready()
Determines if the message is ready to be read.
|
public DotTerminatedMessageReader(java.io.Reader reader)
reader
- The Reader input source containing the message.public int read() throws java.io.IOException
read
in class java.io.Reader
java.io.IOException
- If an error occurs while reading the underlying
stream.public int read(char[] buffer) throws java.io.IOException
read
in class java.io.Reader
buffer
- The character array in which to store the characters.java.io.IOException
- If an error occurs in reading the underlying
stream.public int read(char[] buffer, int offset, int length) throws java.io.IOException
read
in class java.io.Reader
buffer
- The character array in which to store the characters.offset
- The offset into the array at which to start storing
characters.length
- The number of characters to read.java.io.IOException
- If an error occurs in reading the underlying
stream.public boolean ready() throws java.io.IOException
ready
in class java.io.Reader
java.io.IOException
- If an error occurs while checking the underlying
stream.public void close() throws java.io.IOException
If the end of the message has not yet been reached, this method will read the remainder of the message until it reaches the end, so that the underlying stream may continue to be used properly for communicating with the server. If you do not fully read a message, you MUST close it, otherwise your program will likely hang or behave improperly.
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.Reader
java.io.IOException
- If an error occurs while reading the
underlying stream.