public class FileCacheImageOutputStream extends ImageOutputStreamImpl
ImageOutputStream ,将其输出写入常规的OutputStream 。
一个文件用于缓存数据,直到它被刷新到输出流。
bitOffset,
byteOrder,
flushedPos,
streamPos
| Constructor and Description |
|---|
FileCacheImageOutputStream(OutputStream stream, File cacheDir)
构造一个
FileCacheImageOutputStream ,它将写入给定的
outputStream 。
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
关闭此
FileCacheImageOutputStream 。
|
void |
flushBefore(long pos)
在指示的位置之前丢弃流的初始部分。
|
boolean |
isCached()
返回
true因为这
ImageOutputStream缓存数据以允许向后搜索。
|
boolean |
isCachedFile()
返回
true因为这个
ImageOutputStream维护一个文件缓存。
|
boolean |
isCachedMemory()
返回
false因为这
ImageOutputStream不维护主内存缓存。
|
long |
length()
返回
-1L以表示该流具有未知长度。
|
int |
read()
从流中读取一个字节,并将其作为0和255之间的
int返回。
|
int |
read(byte[] b,
int off, int len)
读取到
len从流字节,并将其存储到
b开始于索引
off 。
|
void |
seek(long pos)
设置当前流位置,并将位偏移重置为0。
|
void |
write(byte[] b,
int off, int len)
在当前位置写入一串字节。
|
void |
write(int b)
将当前位置的单个字节写入流。
|
flushBits,
write,
writeBit,
writeBits,
writeBoolean,
writeByte,
writeBytes,
writeChar,
writeChars,
writeChars,
writeDouble,
writeDoubles,
writeFloat,
writeFloats,
writeInt,
writeInts,
writeLong,
writeLongs,
writeShort,
writeShorts,
writeUTF
checkClosed,
finalize,
flush,
getBitOffset,
getByteOrder,
getFlushedPosition,
getStreamPosition,
mark,
read,
readBit,
readBits,
readBoolean,
readByte,
readBytes,
readChar,
readDouble,
readFloat,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readInt,
readLine,
readLong,
readShort,
readUnsignedByte,
readUnsignedInt,
readUnsignedShort,
readUTF,
reset,
setBitOffset,
setByteOrder,
skipBytes,
skipBytes
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitflush, getBitOffset,
getByteOrder,
getFlushedPosition,
getStreamPosition,
mark, read,
readBit,
readBits,
readBoolean,
readByte,
readBytes,
readChar,
readDouble,
readFloat,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readFully,
readInt,
readLine,
readLong,
readShort,
readUnsignedByte,
readUnsignedInt,
readUnsignedShort,
readUTF,
reset, setBitOffset,
setByteOrder,
skipBytes,
skipBytes
public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException
FileCacheImageOutputStream ,它将写入给定的outputStream 。
临时文件用作缓存。 如果cacheDir是非null并且是一个目录,那么该文件将在那里创建。
如果是null ,将使用系统相关的默认临时文件目录(有关详细信息,请参阅File.createTempFile的File.createTempFile )。
stream -
OutputStream 。
cacheDir - 一个
File指示应该创建缓存文件的位置,或者使用
null来使用系统目录。
IllegalArgumentException - 如果
stream是
null 。
IllegalArgumentException - 如果
cacheDir不是
null但不是目录。
IOException
- 如果无法创建缓存文件。
public int read()
throws IOException
ImageInputStreamImpl
int 255之间0和如果达到EOF, -1被返回。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
在发生读取之前,流内的位偏移必须重置为零。
read在接口
ImageInputStream
read在
ImageInputStreamImpl
-1 。
IOException
- 如果流已关闭。
public int read(byte[] b,
int off,
int len)
throws IOException
ImageInputStreamImpl
len从流字节,并将其存储到b开始于索引off 。
如果没有字节可以读取,因为已经到达流的末尾,则返回-1 。
在发生读取之前,流内的位偏移必须重置为零。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
read在接口
ImageInputStream
read在
ImageInputStreamImpl类
b - 要写入的字节数组。
off -
b内写入的起始位置。
len - 要读取的最大字节数。
-1表示EOF。
IOException
- 如果发生I / O错误。
public void write(int b)
throws IOException
ImageOutputStream复制
b的24位b被忽略。
如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用flushBits的方法ImageOutputStreamImpl保证这一点。
write在接口
DataOutput
write在接口
ImageOutputStream
write在
ImageOutputStreamImpl
b - 要写入低8位的
int 。
IOException
- 如果发生I / O错误。
public void write(byte[] b,
int off,
int len)
throws IOException
ImageOutputStream复制
len为0,则不写任何内容。
字节b[off]先写,然后字节b[off + 1]等等。
如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用flushBits的方法ImageOutputStreamImpl保证这一点。
write在接口
DataOutput
write在接口
ImageOutputStream
write在
ImageOutputStreamImpl
b - 要编写的
byte的数组。
off - 数据中的起始偏移量。
len -数量
byte s到写。
IOException
- 如果发生I / O错误。
public long length()
ImageInputStreamImpl
-1L以表示该流具有未知长度。
子类必须覆盖此方法以提供实际的长度信息。
length在接口
ImageInputStream
length在
ImageInputStreamImpl类
public void seek(long pos)
throws IOException
EOFException会,如果执行读取只抛出。
在执行写入之前,文件长度不会增加。
seek在接口
ImageInputStream
seek在
ImageInputStreamImpl
pos - 一个
long所需文件指针位置的long。
IndexOutOfBoundsException - 如果
pos小于冲洗位置。
IOException
- 如果发生任何其他I / O错误。
public boolean isCached()
true因为这
ImageOutputStream缓存数据,以便向后追溯。
isCached在接口
ImageInputStream
isCached在
ImageInputStreamImpl
true 。
isCachedMemory()
,
isCachedFile()
public boolean isCachedFile()
true因为这
ImageOutputStream维护一个文件缓存。
isCachedFile在接口
ImageInputStream
isCachedFile在
ImageInputStreamImpl
true 。
isCached()
,
isCachedMemory()
public boolean isCachedMemory()
false因为此
ImageOutputStream不维护主内存缓存。
isCachedMemory中的
ImageInputStream
isCachedMemory在
ImageInputStreamImpl
false 。
isCached()
,
isCachedFile()
public void close()
throws IOException
FileCacheImageOutputStream 。
所有挂起的数据都被刷新到输出,缓存文件被关闭并被删除。
目的地OutputStream未关闭。
close在接口
Closeable
close在接口
AutoCloseable
close在接口
ImageInputStream
close在
ImageInputStreamImpl
IOException
- 如果发生错误。
public void flushBefore(long pos)
throws IOException
ImageInputStream
IndexOutOfBoundsException 。
调用flushBefore可能允许实现此接口的类释放用于存储流中的数据的资源(如内存或磁盘空间)。
flushBefore在接口
ImageInputStream
flushBefore中的
ImageOutputStream
flushBefore在
ImageInputStreamImpl
pos - 一个
long其中包含可能被刷新的流前缀的长度。
IOException
- 如果发生I / O错误。