Package org.apache.james.mime4j.io
Class BufferedLineReaderInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.apache.james.mime4j.io.LineReaderInputStream
-
- org.apache.james.mime4j.io.BufferedLineReaderInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class BufferedLineReaderInputStream extends LineReaderInputStream
Input buffer that can be used to search for patterns using Quick Search algorithm in data read from anInputStream.
-
-
Field Summary
-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Constructor Description BufferedLineReaderInputStream(InputStream instream, int buffersize)BufferedLineReaderInputStream(InputStream instream, int buffersize, int maxLineLen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]buf()intbyteAt(int pos)intcapacity()voidensureCapacity(int len)intfillBuffer()booleanhasBufferedData()intindexOf(byte b)intindexOf(byte[] pattern)Implements quick search algorithm as published byintindexOf(byte[] pattern, int off, int len)Implements quick search algorithm as published byintindexOf(byte b, int off, int len)protected intlength()protected intlimit()booleanmarkSupported()protected intpos()intread()intread(byte[] b)intread(byte[] b, int off, int len)protected booleanreadAllowed()intreadLine(ByteArrayBuffer dst)Reads one line of text into the givenByteArrayBuffer.protected intskip(int n)StringtoString()voidtruncate()booleanunread(ByteArrayBuffer buf)Tries to unread the last read line.-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Constructor Detail
-
BufferedLineReaderInputStream
public BufferedLineReaderInputStream(InputStream instream, int buffersize, int maxLineLen)
-
BufferedLineReaderInputStream
public BufferedLineReaderInputStream(InputStream instream, int buffersize)
-
-
Method Detail
-
ensureCapacity
public void ensureCapacity(int len)
-
fillBuffer
public int fillBuffer() throws IOException- Throws:
IOException
-
hasBufferedData
public boolean hasBufferedData()
-
truncate
public void truncate()
-
readAllowed
protected boolean readAllowed()
-
read
public int read() throws IOException- Overrides:
readin classFilterInputStream- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException- Overrides:
readin classFilterInputStream- Throws:
IOException
-
read
public int read(byte[] b) throws IOException- Overrides:
readin classFilterInputStream- Throws:
IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classFilterInputStream
-
readLine
public int readLine(ByteArrayBuffer dst) throws MaxLineLimitException, IOException
Description copied from class:LineReaderInputStreamReads one line of text into the givenByteArrayBuffer.- Specified by:
readLinein classLineReaderInputStream- Parameters:
dst- Destination- Returns:
- number of bytes copied or
-1if the end of the stream has been reached. - Throws:
MaxLineLimitException- if the line exceeds a limit on the line length imposed by a subclass.IOException- in case of an I/O error.
-
indexOf
public int indexOf(byte[] pattern, int off, int len)Implements quick search algorithm as published bySUNDAY D.M., 1990, A very fast substring search algorithm, Communications of the ACM . 33(8):132-142.
-
indexOf
public int indexOf(byte[] pattern)
Implements quick search algorithm as published bySUNDAY D.M., 1990, A very fast substring search algorithm, Communications of the ACM . 33(8):132-142.
-
indexOf
public int indexOf(byte b, int off, int len)
-
indexOf
public int indexOf(byte b)
-
byteAt
public int byteAt(int pos)
-
buf
protected byte[] buf()
-
pos
protected int pos()
-
limit
protected int limit()
-
length
protected int length()
-
capacity
public int capacity()
-
skip
protected int skip(int n)
-
unread
public boolean unread(ByteArrayBuffer buf)
Description copied from class:LineReaderInputStreamTries to unread the last read line. Implementation may refuse to unread a new buffer until the previous unread one has been competely consumed. Implementations will directly use the byte array backed by buf, so make sure to not alter it anymore once this method has been called.- Specified by:
unreadin classLineReaderInputStream- Returns:
- true if the unread has been succesfull.
-
-