FileCacheImageInputStreampublic class FileCacheImageInputStream extends ImageInputStreamImpl The FileCacheImageInputStream class is an implementation of ImageInputStream
which reads from its InputStream and uses a temporary file as a cache. |
Fields Summary |
---|
private InputStream | isThe is. | private File | fileThe file. | private RandomAccessFile | rafThe raf. |
Constructors Summary |
---|
public FileCacheImageInputStream(InputStream stream, File cacheDir)Instantiates a new FileCacheImageInputStream from the specified
InputStream and using the specified File as its cache directory.
if (stream == null) {
throw new IllegalArgumentException("stream == null!");
}
is = stream;
if (cacheDir == null || cacheDir.isDirectory()) {
file = File.createTempFile(FileCacheImageOutputStream.IIO_TEMP_FILE_PREFIX, null,
cacheDir);
file.deleteOnExit();
} else {
throw new IllegalArgumentException("Not a directory!");
}
raf = new RandomAccessFile(file, "rw");
|
Methods Summary |
---|
public void | close()
super.close();
raf.close();
file.delete();
| public boolean | isCached()
return true;
| public boolean | isCachedFile()
return true;
| public boolean | isCachedMemory()
return false;
| public int | read()
bitOffset = 0;
if (streamPos >= raf.length()) {
int b = is.read();
if (b < 0) {
return -1;
}
raf.seek(streamPos++);
raf.write(b);
return b;
}
raf.seek(streamPos++);
return raf.read();
| public int | read(byte[] b, int off, int len)
bitOffset = 0;
if (streamPos >= raf.length()) {
int nBytes = is.read(b, off, len);
if (nBytes < 0) {
return -1;
}
raf.seek(streamPos);
raf.write(b, off, nBytes);
streamPos += nBytes;
return nBytes;
}
raf.seek(streamPos);
int nBytes = raf.read(b, off, len);
streamPos += nBytes;
return nBytes;
|
|