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, wait
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
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错误。