org.apache.xerces.impl
Class XMLEntityManager.RewindableInputStream
java.lang.Object
|
+--java.io.InputStream
|
+--org.apache.xerces.impl.XMLEntityManager.RewindableInputStream
- Enclosing class:
- XMLEntityManager
- protected final class XMLEntityManager.RewindableInputStream
- extends java.io.InputStream
This class wraps the byte inputstreams we're presented with.
We need it because java.io.InputStreams don't provide
functionality to reread processed bytes, and they have a habit
of reading more than one character when you call their read()
methods. This means that, once we discover the true (declared)
encoding of a document, we can neither backtrack to read the
whole doc again nor start reading where we are with a new
reader.
This class allows rewinding an inputStream by allowing a mark
to be set, and the stream reset to that position. The
class assumes that it needs to read one character per
invocation when it's read() method is inovked, but uses the
underlying InputStream's read(char[], offset length) method--it
won't buffer data read this way!
INTERNAL:
- Usage of this class is not supported. It may be altered or removed at any time.
- Author:
- Neil Graham, IBM, Glenn Marcy, IBM
Methods inherited from class java.io.InputStream |
read |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XMLEntityManager.RewindableInputStream
public XMLEntityManager.RewindableInputStream(java.io.InputStream is)
setStartOffset
public void setStartOffset(int offset)
rewind
public void rewind()
read
public int read()
throws java.io.IOException
- Overrides:
read
in class java.io.InputStream
read
public int read(byte[] b,
int off,
int len)
throws java.io.IOException
- Overrides:
read
in class java.io.InputStream
skip
public long skip(long n)
throws java.io.IOException
- Overrides:
skip
in class java.io.InputStream
available
public int available()
throws java.io.IOException
- Overrides:
available
in class java.io.InputStream
mark
public void mark(int howMuch)
- Overrides:
mark
in class java.io.InputStream
reset
public void reset()
- Overrides:
reset
in class java.io.InputStream
markSupported
public boolean markSupported()
- Overrides:
markSupported
in class java.io.InputStream
close
public void close()
throws java.io.IOException
- Overrides:
close
in class java.io.InputStream
Copyright © 1999-2005 Apache XML Project. All Rights Reserved.