com.sun.jimi.core.decoder.png
Class MeteredInputStream
java.lang.Object
|
+--java.io.InputStream
|
+--java.io.FilterInputStream
|
+--com.sun.jimi.core.decoder.png.MeteredInputStream
- public class MeteredInputStream
- extends java.io.FilterInputStream
Fields inherited from class java.io.FilterInputStream |
in |
Method Summary |
int |
available()
Returns the number of bytes that can be read
without blocking. |
void |
close()
Does NOT close the input stream. |
void |
mark(int readlimit)
Marks the current position in the input stream. |
boolean |
markSupported()
Returns true if this stream type supports mark/reset. |
int |
read()
Reads a byte. |
int |
read(byte[] b)
Reads into an array of bytes. |
int |
read(byte[] b,
int off,
int len)
Reads into an array of bytes. |
void |
reset()
Repositions the stream to the last marked position. |
long |
skip(long n)
Skips bytes of input. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
MeteredInputStream
public MeteredInputStream(java.io.InputStream in,
int size)
read
public final int read()
throws java.io.IOException
- Reads a byte. Will block if no input is available.
- Returns:
- the byte read, or -1 if the end of the
stream is reached.
- Throws:
- java.io.IOException - If an I/O error has occurred.
- Overrides:
- read in class java.io.FilterInputStream
read
public final int read(byte[] b)
throws java.io.IOException
- Reads into an array of bytes.
Blocks until some input is available.
- Parameters:
b
- the buffer into which the data is read- Returns:
- the actual number of bytes read. Returns -1
when the end of the stream is reached.
- Throws:
- java.io.IOException - If an I/O error has occurred.
- Overrides:
- read in class java.io.FilterInputStream
read
public final int read(byte[] b,
int off,
int len)
throws java.io.IOException
- Reads into an array of bytes.
Blocks until some input is available.
This method should be overridden in a subclass for
efficiency (the default implementation reads 1 byte
at a time).
- Parameters:
b
- the buffer into which the data is readoff
- the start offset of the datalen
- the maximum number of bytes read- Returns:
- the actual number of bytes read. Returns -1
when the end of the stream is reached.
- Throws:
- java.io.IOException - If an I/O error has occurred.
- Overrides:
- read in class java.io.FilterInputStream
skip
public final long skip(long n)
throws java.io.IOException
- Skips bytes of input.
- Parameters:
n
- bytes to be skipped- Returns:
- actual number of bytes skipped
- Throws:
- java.io.IOException - If an I/O error has occurred.
- Overrides:
- skip in class java.io.FilterInputStream
available
public final int available()
throws java.io.IOException
- Returns the number of bytes that can be read
without blocking.
- Returns:
- the number of available bytes
- Overrides:
- available in class java.io.FilterInputStream
close
public final void close()
throws java.io.IOException
- Does NOT close the input stream. More data is to be expected
- Throws:
- java.io.IOException - If an I/O error has occurred.
- Overrides:
- close in class java.io.FilterInputStream
mark
public final void mark(int readlimit)
- Marks the current position in the input stream. A subsequent
call to reset() will reposition the stream at the last
marked position so that subsequent reads will re-read
the same bytes. The stream promises to allow readlimit bytes
to be read before the mark position gets invalidated.
- Parameters:
readlimit
- the maximum limit of bytes allowed tobe read before the
mark position becomes invalid.- Overrides:
- mark in class java.io.FilterInputStream
reset
public final void reset()
throws java.io.IOException
- Repositions the stream to the last marked position. If the
stream has not been marked, or if the mark has been invalidated,
an IOException is thrown. Stream marks are intended to be used in
situations where you need to read ahead a little to see what's in
the stream. Often this is most easily done by invoking some
general parser. If the stream is of the type handled by the
parse, it just chugs along happily. If the stream is not of
that type, the parser should toss an exception when it fails.
If this happens within readlimit bytes, it allows the outer
code to reset the stream and try another parser.
- Overrides:
- reset in class java.io.FilterInputStream
markSupported
public final boolean markSupported()
- Returns true if this stream type supports mark/reset.
- Overrides:
- markSupported in class java.io.FilterInputStream