org.cyberneko.html
Class HTMLScanner.PlaybackInputStream
FilterInputStream
org.cyberneko.html.HTMLScanner.PlaybackInputStream
- HTMLScanner
public static class HTMLScanner.PlaybackInputStream
extends FilterInputStream
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.
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.
|
fByteBuffer
protected byte[] fByteBuffer
Byte buffer.
fByteLength
protected int fByteLength
Length of bytes read into byte buffer.
fByteOffset
protected int fByteOffset
Offset into byte buffer during playback.
fCleared
protected boolean fCleared
Buffer cleared.
fDetected
protected boolean fDetected
Encoding detected.
fPlayback
protected boolean fPlayback
Playback mode.
fPushbackLength
public int fPushbackLength
Pushback length.
fPushbackOffset
public int fPushbackOffset
Pushback offset.
PlaybackInputStream
public PlaybackInputStream(InputStream in)
Constructor.
clear
public void clear()
Clears the buffer.
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.
detectEncoding
public void detectEncoding(String[] encodings)
throws IOException
Detect encoding.
playback
public void playback()
Playback buffer contents.
read
public int read()
throws IOException
Read a byte.
read
public int read(byte[] array)
throws IOException
Read an array of bytes.
read
public int read(byte[] array,
int offset,
int length)
throws IOException
Read an array of bytes.
(C) Copyright 2002-2005, Andy Clark. All rights reserved.