|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
org.cyberneko.html.HTMLScanner.PlaybackInputStream
A playback input stream. This class has the ability to save the bytes read from the underlying input stream and play the bytes back later. This class is used by the HTML scanner to switch encodings when a <meta> tag is detected that specifies a different encoding.
If the encoding is changed, then the scanner calls the
playback
method and re-scans the beginning of the HTML
document again. This should not be too much of a performance problem
because the <meta> tag appears at the beginning of the document.
If the <body> tag is reached without playing back the bytes,
then the buffer can be cleared by calling the clear
method. This stops the buffering of bytes and allows the memory used
by the buffer to be reclaimed.
Note: If the buffer is never played back or cleared, this input stream will continue to buffer the entire stream. Therefore, it is very important to use this stream correctly.
Field Summary | |
protected byte[] |
fByteBuffer
Byte buffer. |
protected int |
fByteLength
Length of bytes read into byte buffer. |
protected int |
fByteOffset
Offset into byte buffer during playback. |
protected boolean |
fCleared
Buffer cleared. |
protected boolean |
fDetected
Encoding detected. |
protected boolean |
fPlayback
Playback mode. |
int |
fPushbackLength
Pushback length. |
int |
fPushbackOffset
Pushback offset. |
Fields inherited from class java.io.FilterInputStream |
in |
Constructor Summary | |
HTMLScanner.PlaybackInputStream(InputStream in)
Constructor. |
Method Summary | |
void |
clear()
Clears the buffer. |
void |
detectEncoding(String[] encodings)
Detect encoding. |
void |
playback()
Playback buffer contents. |
int |
read()
Read a byte. |
int |
read(byte[] array)
Read an array of bytes. |
int |
read(byte[] array,
int offset,
int length)
Read an array of bytes. |
Methods inherited from class java.io.FilterInputStream |
available, close, mark, markSupported, reset, skip |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected boolean fPlayback
protected boolean fCleared
protected boolean fDetected
protected byte[] fByteBuffer
protected int fByteOffset
protected int fByteLength
public int fPushbackOffset
public int fPushbackLength
Constructor Detail |
public HTMLScanner.PlaybackInputStream(InputStream in)
Method Detail |
public void detectEncoding(String[] encodings) throws IOException
IOException
public void playback()
public void clear()
Note: The buffer cannot be cleared during playback. Therefore, calling this method during playback will not do anything. However, the buffer will be cleared automatically at the end of playback.
public int read() throws IOException
IOException
public int read(byte[] array) throws IOException
IOException
public int read(byte[] array, int offset, int length) throws IOException
IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |