org.apache.derby.iapi.services.io
Class LimitInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.derby.iapi.services.io.LimitInputStream
- All Implemented Interfaces:
- java.io.Closeable, Limit
- Direct Known Subclasses:
- RawToBinaryFormatStream
public class LimitInputStream
- extends java.io.FilterInputStream
- implements Limit
An abstract InputStream that provides abstract methods to limit the range that
can be read from the stream.
Fields inherited from class java.io.FilterInputStream |
in |
Constructor Summary |
LimitInputStream(java.io.InputStream in)
Construct a LimitInputStream and call the clearLimit() method. |
Method Summary |
int |
available()
|
int |
clearLimit()
Clear any limit set by setLimit. |
boolean |
markSupported()
This stream doesn't support mark/reset, independent of whether the
underlying stream does so or not. |
int |
read()
|
int |
read(byte[] b,
int off,
int len)
|
void |
setInput(java.io.InputStream in)
|
void |
setLimit(int length)
Set the limit of the stream that can be read. |
long |
skip(long count)
|
Methods inherited from class java.io.FilterInputStream |
close, mark, read, reset |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
remainingBytes
protected int remainingBytes
limitInPlace
protected boolean limitInPlace
LimitInputStream
public LimitInputStream(java.io.InputStream in)
- Construct a LimitInputStream and call the clearLimit() method.
read
public int read()
throws java.io.IOException
- Overrides:
read
in class java.io.FilterInputStream
- Throws:
java.io.IOException
read
public int read(byte[] b,
int off,
int len)
throws java.io.IOException
- Overrides:
read
in class java.io.FilterInputStream
- Throws:
java.io.IOException
skip
public long skip(long count)
throws java.io.IOException
- Overrides:
skip
in class java.io.FilterInputStream
- Throws:
java.io.IOException
available
public int available()
throws java.io.IOException
- Overrides:
available
in class java.io.FilterInputStream
- Throws:
java.io.IOException
setLimit
public void setLimit(int length)
- Set the limit of the stream that can be read. After this
call up to and including length bytes can be read from or skipped in
the stream. Any attempt to read more than length bytes will
result in an EOFException
- Specified by:
setLimit
in interface Limit
- Throws:
java.io.IOException
- IOException from some underlying stream
EOFException
- The set limit would exceed
the available data in the stream.
clearLimit
public int clearLimit()
- Clear any limit set by setLimit. After this call no limit checking
will be made on any read until a setLimit()) call is made.
- Specified by:
clearLimit
in interface Limit
- Returns:
- the number of bytes within the limit that have not been read.
-1 if no limit was set.
setInput
public void setInput(java.io.InputStream in)
markSupported
public boolean markSupported()
- This stream doesn't support mark/reset, independent of whether the
underlying stream does so or not.
The reason for not supporting mark/reset, is that it is hard to combine
with the limit functionality without always keeping track of the number
of bytes read.
- Overrides:
markSupported
in class java.io.FilterInputStream
- Returns:
false
Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.