|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.io.InputStream org.terrier.utility.LookAheadStream
public class LookAheadStream
Implements an InputStream, that encapsulates another stream, but only upto the point that a pre-defined end marker in the stream is identified. The Reader will then become endOfFile, and refuse to return any more bytes from the stream. Suppose that we create an instance of a LookAheadStream with the end marker END. For the following input: a b c d END e f g... the LookAheadStream, will stop after reading the string END. Note that the end marker will be missing from the parent stream.
LookAheadStream allows the encoding to be changed between markers. Handy for collections of webpages, which may use different encodings. However, the end marker must be obtainable using the default encoding.
LookAheadReader
Field Summary | |
---|---|
protected int[] |
Buffer
The read ahead buffer |
protected int |
BufIndex
index of the first entry in the buffer |
protected int |
BufLen
How many bytes are in the read ahead buffer |
protected byte[] |
EndMarker
the end marker that it is pre-scanning the stream for |
protected boolean |
EOF
have we reached the end of the file |
protected int |
MarkerLen
How long is the end marker |
protected java.io.InputStream |
ParentStream
the parent stream that this object is looking ahead in |
Constructor Summary | |
---|---|
LookAheadStream(java.io.InputStream parent,
byte[] endMarker)
Creates an instance of a LookAheadStream that will read from the given stream until the end marker byte pattern is found. |
|
LookAheadStream(java.io.InputStream parent,
java.lang.String endMarker)
Creates an instance of a LookAheadStream that will read from the given stream until the end marker is found. |
|
LookAheadStream(java.io.InputStream parent,
java.lang.String endMarker,
java.lang.String charSet)
Creates an instance of a LookAheadStream that will read from the given stream until the end marker is found. |
Method Summary | |
---|---|
void |
close()
Closes the current stream, by setting the end of file flag equal to true. |
void |
mark(int x)
This method is not implemented. |
boolean |
markSupported()
Support for marking is not implemented. |
int |
read()
Read a byte from the parent stream, first checking that it doesn't form part of the end marker. |
int |
read(byte[] cbuf)
Read bytes into an array. |
int |
read(byte[] cbuf,
int offset,
int len)
Read bytes into a portion of an array. |
boolean |
ready()
Indicates whether there are more bytes available to read from the stream. |
void |
reset()
Reset the stream. |
long |
skip(long n)
Skips n bytes from the stream. |
Methods inherited from class java.io.InputStream |
---|
available |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final java.io.InputStream ParentStream
protected final byte[] EndMarker
protected final int MarkerLen
protected int BufLen
protected int BufIndex
protected final int[] Buffer
protected boolean EOF
Constructor Detail |
---|
public LookAheadStream(java.io.InputStream parent, java.lang.String endMarker)
parent
- InputStream the stream used for reading the input.endMarker
- String the marker which signifies the end of the stream.
Not deprecated, but recommended to use LookAheadStream(InputStream parent, String endMarker, String charSet) instead.public LookAheadStream(java.io.InputStream parent, java.lang.String endMarker, java.lang.String charSet) throws java.io.UnsupportedEncodingException
parent
- InputStream the stream used for reading the input.endMarker
- String the marker which signifies the end of the stream.charSet
- String the name of the character set to use.
java.io.UnsupportedEncodingException
public LookAheadStream(java.io.InputStream parent, byte[] endMarker)
parent
- InputStream the stream used for reading the input.endMarker
- String the marker which signifies the end of the stream.Method Detail |
---|
public int read() throws java.io.IOException
read
in class java.io.InputStream
java.io.IOException
- if there is any error while reading from the stream.public int read(byte[] cbuf) throws java.io.IOException
read
in class java.io.InputStream
cbuf
- cbuf - Destination buffer
java.io.IOException
- If an I/O error occurspublic int read(byte[] cbuf, int offset, int len) throws java.io.IOException
read
in class java.io.InputStream
cbuf
- Destination bufferoffset
- Offset at which to start storing byteslen
- Maximum number of bytes to read
java.io.IOException
- If an I/O error occurspublic void reset() throws java.io.IOException
reset
in class java.io.InputStream
java.io.IOException
- thrown if ParentStream.reset();public long skip(long n) throws java.io.IOException
skip
in class java.io.InputStream
n
- long the number of bytes to skip.
java.io.IOException
- if there is any error while
reading from the stream.public boolean ready() throws java.io.IOException
java.io.IOException
- if there is any error while
reading from the stream.public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in class java.io.InputStream
java.io.IOException
public boolean markSupported()
markSupported
in class java.io.InputStream
public void mark(int x)
mark
in class java.io.InputStream
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |