public final class FileCacheSeekableStream extends SeekableInputStream
SeekableInputStream implementation that caches data in a temporary File.
Temporary files are created as specified in File.createTempFile(String, String, java.io.File).MemoryCacheSeekableStream,
FileSeekableStream,
File.createTempFile(String, String),
RandomAccessFile| Modifier and Type | Class and Description |
|---|---|
static class |
AbstractCachedSeekableStream.StreamCache
An abstract stream cache.
|
| Modifier and Type | Field and Description |
|---|---|
protected java.io.InputStream |
stream
The backing stream
|
protected long |
streamPosition
The stream positon in the backing stream (stream)
|
markedPositions| Constructor and Description |
|---|
FileCacheSeekableStream(java.io.InputStream pStream)
Creates a
FileCacheSeekableStream reading from the given
InputStream. |
FileCacheSeekableStream(java.io.InputStream pStream,
java.lang.String pTempBaseName)
Creates a
FileCacheSeekableStream reading from the given
InputStream. |
FileCacheSeekableStream(java.io.InputStream pStream,
java.lang.String pTempBaseName,
java.io.File pTempDir)
Creates a
FileCacheSeekableStream reading from the given
InputStream. |
| Modifier and Type | Method and Description |
|---|---|
int |
available() |
protected void |
closeImpl() |
protected void |
flushBeforeImpl(long pPosition)
Discards the initial portion of the stream prior to the indicated postion.
|
protected AbstractCachedSeekableStream.StreamCache |
getCache() |
boolean |
isCached()
Returns true if this
Seekable stream caches data itself in order
to allow seeking backwards. |
boolean |
isCachedFile()
Returns true if this
Seekable stream caches data itself in
order to allow seeking backwards, and the cache is kept in a
temporary file. |
boolean |
isCachedMemory()
Returns true if this
Seekable stream caches data itself in order
to allow seeking backwards, and the cache is kept in main memory. |
int |
read() |
int |
read(byte[] pBytes,
int pOffset,
int pLength) |
protected void |
seekImpl(long pPosition) |
protected void |
syncPosition() |
checkOpen, close, finalize, flush, flushBefore, getFlushedPosition, getStreamPosition, mark, mark, markSupported, read, reset, seek, skipprotected final java.io.InputStream stream
protected long streamPosition
public FileCacheSeekableStream(java.io.InputStream pStream)
throws java.io.IOException
FileCacheSeekableStream reading from the given
InputStream. Data will be cached in a temporary file.pStream - the InputStream to read fromjava.io.IOException - if the temporary file cannot be created,
or cannot be opened for random access.public FileCacheSeekableStream(java.io.InputStream pStream,
java.lang.String pTempBaseName)
throws java.io.IOException
FileCacheSeekableStream reading from the given
InputStream. Data will be cached in a temporary file, with
the given base name.pStream - the InputStream to read frompTempBaseName - optional base name for the temporary filejava.io.IOException - if the temporary file cannot be created,
or cannot be opened for random access.public FileCacheSeekableStream(java.io.InputStream pStream,
java.lang.String pTempBaseName,
java.io.File pTempDir)
throws java.io.IOException
FileCacheSeekableStream reading from the given
InputStream. Data will be cached in a temporary file, with
the given base name, in the given directorypStream - the InputStream to read frompTempBaseName - optional base name for the temporary filepTempDir - optional temp directoryjava.io.IOException - if the temporary file cannot be created,
or cannot be opened for random access.public final boolean isCachedMemory()
SeekableSeekable stream caches data itself in order
to allow seeking backwards, and the cache is kept in main memory.
Applications may consult this in order to decide how frequently, or
whether, to flush in order to conserve cache resources.isCachedMemory in interface Seekabletrue if this Seekable caches data in main
memory.Seekable.isCached(),
Seekable.isCachedFile()public final boolean isCachedFile()
SeekableSeekable stream caches data itself in
order to allow seeking backwards, and the cache is kept in a
temporary file.
Applications may consult this in order to decide how frequently,
or whether, to flush in order to conserve cache resources.isCachedFile in interface Seekabletrue if this Seekable caches data in a
temporary file.Seekable.isCached(),
Seekable.isCachedMemory()protected void closeImpl()
throws java.io.IOException
java.io.IOExceptionpublic int read()
throws java.io.IOException
java.io.IOExceptionpublic int read(byte[] pBytes,
int pOffset,
int pLength)
throws java.io.IOException
java.io.IOExceptionprotected final AbstractCachedSeekableStream.StreamCache getCache()
public int available()
throws java.io.IOException
available in class java.io.InputStreamjava.io.IOExceptionprotected final void syncPosition()
throws java.io.IOException
java.io.IOExceptionpublic final boolean isCached()
SeekableSeekable stream caches data itself in order
to allow seeking backwards. Applications may consult this in order to
decide how frequently, or whether, to flush in order to conserve cache
resources.true if this Seekable caches data.Seekable.isCachedMemory(),
Seekable.isCachedFile()protected void seekImpl(long pPosition)
throws java.io.IOException
seekImpl in class SeekableInputStreamjava.io.IOExceptionprotected void flushBeforeImpl(long pPosition)
SeekableInputStreamflushBeforeImpl in class SeekableInputStreampPosition - the position to flush toSeekableInputStream.flushBefore(long)Copyright © 2018. All Rights Reserved.