|
HTML Parser Home Page | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.io.Reader org.htmlparser.lexer.Source org.htmlparser.lexer.InputStreamSource
public class InputStreamSource
A source of characters based on an InputStream such as from a URLConnection.
Field Summary | |
---|---|
static int |
BUFFER_SIZE
An initial buffer size. |
protected char[] |
mBuffer
The characters read so far. |
protected String |
mEncoding
The character set in use. |
protected int |
mLevel
The number of valid bytes in the buffer. |
protected int |
mMark
The bookmark. |
protected int |
mOffset
The offset of the next byte returned by read(). |
protected InputStreamReader |
mReader
The converter from bytes to characters. |
protected InputStream |
mStream
The stream of bytes. |
Fields inherited from class org.htmlparser.lexer.Source |
---|
EOF |
Fields inherited from class java.io.Reader |
---|
lock |
Constructor Summary | |
---|---|
InputStreamSource(InputStream stream)
Create a source of characters using the default character set. |
|
InputStreamSource(InputStream stream,
String charset)
Create a source of characters. |
|
InputStreamSource(InputStream stream,
String charset,
int size)
Create a source of characters. |
Method Summary | |
---|---|
int |
available()
Get the number of available characters. |
void |
close()
Does nothing. |
void |
destroy()
Close the source. |
protected void |
fill(int min)
Fetch more characters from the underlying reader. |
char |
getCharacter(int offset)
Retrieve a character again. |
void |
getCharacters(char[] array,
int offset,
int start,
int end)
Retrieve characters again. |
void |
getCharacters(StringBuffer buffer,
int offset,
int length)
Append characters already read into a StringBuffer . |
String |
getEncoding()
Get the encoding being used to convert characters. |
InputStream |
getStream()
Get the input stream being used. |
String |
getString(int offset,
int length)
Retrieve a string. |
void |
mark(int readAheadLimit)
Mark the present position in the source. |
boolean |
markSupported()
Tell whether this source supports the mark() operation. |
int |
offset()
Get the position (in characters). |
int |
read()
Read a single character. |
int |
read(char[] cbuf)
Read characters into an array. |
int |
read(char[] cbuf,
int off,
int len)
Read characters into a portion of an array. |
boolean |
ready()
Tell whether this source is ready to be read. |
void |
reset()
Reset the source. |
void |
setEncoding(String character_set)
Begins reading from the source with the given character set. |
long |
skip(long n)
Skip characters. |
void |
unread()
Undo the read of a single character. |
Methods inherited from class java.io.Reader |
---|
read |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static int BUFFER_SIZE
protected transient InputStream mStream
null
when the source is closed.
protected String mEncoding
protected transient InputStreamReader mReader
protected char[] mBuffer
protected int mLevel
protected int mOffset
protected int mMark
Constructor Detail |
---|
public InputStreamSource(InputStream stream) throws UnsupportedEncodingException
stream
- The stream of bytes to use.
UnsupportedEncodingException
- If the default character set
is unsupported.public InputStreamSource(InputStream stream, String charset) throws UnsupportedEncodingException
stream
- The stream of bytes to use.charset
- The character set used in encoding the stream.
UnsupportedEncodingException
- If the character set
is unsupported.public InputStreamSource(InputStream stream, String charset, int size) throws UnsupportedEncodingException
stream
- The stream of bytes to use.charset
- The character set used in encoding the stream.size
- The initial character buffer size.
UnsupportedEncodingException
- If the character set
is unsupported.Method Detail |
---|
public InputStream getStream()
public String getEncoding()
getEncoding
in class Source
public void setEncoding(String character_set) throws ParserException
Some magic happens here to obtain this result if characters have already been consumed from this source. Since a Reader cannot be dynamically altered to use a different character set, the underlying stream is reset, a new Source is constructed and a comparison made of the characters read so far with the newly read characters up to the current position. If a difference is encountered, or some other problem occurs, an exception is thrown.
setEncoding
in class Source
character_set
- The character set to use to convert bytes into
characters.
ParserException
- If a character mismatch occurs between
characters already provided and those that would have been returned
had the new character set been in effect from the beginning. An
exception is also thrown if the underlying stream won't put up with
these shenanigans.protected void fill(int min) throws IOException
min
- The minimum to read.
IOException
- If the underlying reader read() throws one.public void close() throws IOException
close
in interface Closeable
close
in class Source
IOException
- not useddestroy()
public int read() throws IOException
read
in class Source
EOF
if the end of the stream has
been reached
IOException
- If an I/O error occurs.public int read(char[] cbuf, int off, int len) throws IOException
read
in class Source
cbuf
- Destination bufferoff
- Offset at which to start storing characterslen
- Maximum number of characters to read
EOF
if the end of
the stream has been reached
IOException
- If an I/O error occurs.public int read(char[] cbuf) throws IOException
read
in class Source
cbuf
- Destination buffer.
EOF
if the end of
the stream has been reached.
IOException
- If an I/O error occurs.public void reset() throws IllegalStateException
reset
in class Source
IllegalStateException
- If the source has been closed.public boolean markSupported()
markSupported
in class Source
true
.public void mark(int readAheadLimit) throws IOException
reset()
will attempt to reposition the source to this point.
mark
in class Source
readAheadLimit
- Not used.
IOException
- If the source is closed.public boolean ready() throws IOException
ready
in class Source
true
if the next read() is guaranteed not to block
for input, false
otherwise.
Note that returning false does not guarantee that the next read will block.
IOException
- If the source is closed.public long skip(long n) throws IOException, IllegalArgumentException
skip
in class Source
n
- The number of characters to skip.
IllegalArgumentException
- If n
is negative.
IOException
- If an I/O error occurs.public void unread() throws IOException
unread
in class Source
IOException
- If the source is closed or no characters have
been read.public char getCharacter(int offset) throws IOException
getCharacter
in class Source
offset
- The offset of the character.
offset
.
IOException
- If the offset is beyond offset()
or the
source is closed.public void getCharacters(char[] array, int offset, int start, int end) throws IOException
getCharacters
in class Source
array
- The array of characters.offset
- The starting position in the array where characters are to be placed.start
- The starting position, zero based.end
- The ending position
(exclusive, i.e. the character at the ending position is not included),
zero based.
IOException
- If the start or end is beyond offset()
or the source is closed.public String getString(int offset, int length) throws IOException
getString
in class Source
offset
- The offset of the first character.length
- The number of characters to retrieve.
length
characters at offset
.
IOException
- If the offset or (offset + length) is beyond
offset()
or the source is closed.public void getCharacters(StringBuffer buffer, int offset, int length) throws IOException
StringBuffer
.
getCharacters
in class Source
buffer
- The buffer to append to.offset
- The offset of the first character.length
- The number of characters to retrieve.
IOException
- If the offset or (offset + length) is beyond
offset()
or the source is closed.public void destroy() throws IOException
read
,
ready
, mark
, reset
,
skip
, unread
,
getCharacter
or getString
invocations will throw an IOException.
Closing a previously-closed source, however, has no effect.
destroy
in class Source
IOException
- If an I/O error occurspublic int offset()
offset
in class Source
EOF
if the source is closed.public int available()
available
in class Source
|
© 2006 Derrick Oswald Sep 17, 2006
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
HTML Parser is an open source library released under Common Public License. |