Class RewindableInputStream
- java.lang.Object
-
- java.io.InputStream
-
- nu.validator.htmlparser.rewindable.RewindableInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,Rewindable
public class RewindableInputStream extends java.io.InputStream implements Rewindable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
RewindableInputStream.Block
-
Field Summary
Fields Modifier and Type Field Description private RewindableInputStream.Block
curBlock
private int
curBlockAvail
If curBlockAvail > 0, then there are curBlockAvail bytes available to be returned starting at curBlockPos in curBlock.buf.private int
curBlockPos
private boolean
eof
true if we have got an EOF from the underlying InputStreamprivate RewindableInputStream.Block
head
private java.io.InputStream
in
private RewindableInputStream.Block
lastBlock
private boolean
pretendClosed
private boolean
saving
true unless willNotRewind has been called
-
Constructor Summary
Constructors Constructor Description RewindableInputStream(java.io.InputStream in)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
boolean
canRewind()
void
close()
int
read()
int
read(byte[] b, int off, int len)
void
rewind()
void
willNotRewind()
-
-
-
Field Detail
-
head
private RewindableInputStream.Block head
-
curBlockAvail
private int curBlockAvail
If curBlockAvail > 0, then there are curBlockAvail bytes available to be returned starting at curBlockPos in curBlock.buf.
-
curBlock
private RewindableInputStream.Block curBlock
-
curBlockPos
private int curBlockPos
-
lastBlock
private RewindableInputStream.Block lastBlock
-
saving
private boolean saving
true unless willNotRewind has been called
-
in
private final java.io.InputStream in
-
pretendClosed
private boolean pretendClosed
-
eof
private boolean eof
true if we have got an EOF from the underlying InputStream
-
-
Method Detail
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
rewind
public void rewind()
- Specified by:
rewind
in interfaceRewindable
-
canRewind
public boolean canRewind()
- Specified by:
canRewind
in interfaceRewindable
-
willNotRewind
public void willNotRewind()
- Specified by:
willNotRewind
in interfaceRewindable
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException
- Overrides:
available
in classjava.io.InputStream
- Throws:
java.io.IOException
-
-