Class FileCacheSeekableStream
java.lang.Object
java.io.InputStream
com.twelvemonkeys.io.SeekableInputStream
com.twelvemonkeys.io.AbstractCachedSeekableStream
com.twelvemonkeys.io.FileCacheSeekableStream
- All Implemented Interfaces:
Seekable, Closeable, AutoCloseable
A
SeekableInputStream implementation that caches data in a temporary File.
Temporary files are created as specified in File.createTempFile(String, String, java.io.File).
- Version:
- $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/io/FileCacheSeekableStream.java#5 $
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classNested classes/interfaces inherited from class AbstractCachedSeekableStream
AbstractCachedSeekableStream.StreamCache -
Field Summary
FieldsFields inherited from class AbstractCachedSeekableStream
stream, streamPositionFields inherited from class SeekableInputStream
closed, flushedPosition, markedPositions, position -
Constructor Summary
ConstructorsConstructorDescriptionFileCacheSeekableStream(InputStream pStream) Creates aFileCacheSeekableStreamreading from the givenInputStream.FileCacheSeekableStream(InputStream pStream, File pFile) FileCacheSeekableStream(InputStream pStream, String pTempBaseName) Creates aFileCacheSeekableStreamreading from the givenInputStream.FileCacheSeekableStream(InputStream pStream, String pTempBaseName, File pTempDir) Creates aFileCacheSeekableStreamreading from the givenInputStream. -
Method Summary
Modifier and TypeMethodDescriptionprotected void(package private) static FilecreateTempFile(String pTempBaseName, File pTempDir) final booleanReturns true if thisSeekablestream caches data itself in order to allow seeking backwards, and the cache is kept in a temporary file.final booleanReturns true if thisSeekablestream caches data itself in order to allow seeking backwards, and the cache is kept in main memory.intread()intread(byte[] pBytes, int pOffset, int pLength) private intreadAhead(byte[] pBytes, int pOffset, int pLength) Methods inherited from class AbstractCachedSeekableStream
available, flushBeforeImpl, getCache, isCached, seekImpl, syncPositionMethods inherited from class SeekableInputStream
checkOpen, close, finalize, flush, flushBefore, getFlushedPosition, getStreamPosition, mark, mark, markSupported, read, reset, seek, skipMethods inherited from class InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Field Details
-
buffer
private byte[] buffer
-
-
Constructor Details
-
FileCacheSeekableStream
Creates aFileCacheSeekableStreamreading from the givenInputStream. Data will be cached in a temporary file.- Parameters:
pStream- theInputStreamto read from- Throws:
IOException- if the temporary file cannot be created, or cannot be opened for random access.
-
FileCacheSeekableStream
Creates aFileCacheSeekableStreamreading from the givenInputStream. Data will be cached in a temporary file, with the given base name.- Parameters:
pStream- theInputStreamto read frompTempBaseName- optional base name for the temporary file- Throws:
IOException- if the temporary file cannot be created, or cannot be opened for random access.
-
FileCacheSeekableStream
public FileCacheSeekableStream(InputStream pStream, String pTempBaseName, File pTempDir) throws IOException Creates aFileCacheSeekableStreamreading from the givenInputStream. Data will be cached in a temporary file, with the given base name, in the given directory- Parameters:
pStream- theInputStreamto read frompTempBaseName- optional base name for the temporary filepTempDir- optional temp directory- Throws:
IOException- if the temporary file cannot be created, or cannot be opened for random access.
-
FileCacheSeekableStream
FileCacheSeekableStream(InputStream pStream, File pFile) throws FileNotFoundException - Throws:
FileNotFoundException
-
-
Method Details
-
createTempFile
- Throws:
IOException
-
isCachedMemory
public final boolean isCachedMemory()Description copied from interface:SeekableReturns true if thisSeekablestream 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.- Specified by:
isCachedMemoryin interfaceSeekable- Specified by:
isCachedMemoryin classAbstractCachedSeekableStream- Returns:
trueif thisSeekablecaches data in main memory.- See Also:
-
isCachedFile
public final boolean isCachedFile()Description copied from interface:SeekableReturns true if thisSeekablestream 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.- Specified by:
isCachedFilein interfaceSeekable- Specified by:
isCachedFilein classAbstractCachedSeekableStream- Returns:
trueif thisSeekablecaches data in a temporary file.- See Also:
-
closeImpl
- Overrides:
closeImplin classAbstractCachedSeekableStream- Throws:
IOException
-
read
- Overrides:
readin classAbstractCachedSeekableStream- Throws:
IOException
-
read
- Overrides:
readin classAbstractCachedSeekableStream- Throws:
IOException
-
readAhead
- Throws:
IOException
-