-
- All Superinterfaces:
-
AutoCloseable,Closeable,DataInput,DataOutput,ImageInputStream
- 所有已知实现类:
-
FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream
public interface ImageOutputStream extends ImageInputStream, DataOutput
一个可寻求的输出流接口,供ImageWriter使用。 诸如OutputStream和File的各种输出目的地以及未来的快速I / O目的地可能被该接口的适当实现“包裹”,以供Image I / O API使用。与标准
OutputStream不同,ImageOutputStream扩展了其对应的ImageInputStream。 因此,可以从流中读取它被写入。 尽管用于处理字节对齐写入之前的非零位偏移的语义必须与用于在字节对齐之前处理非零位偏移的语义不同,对齐阅读 当读取字节时,任何位偏移量在读取之前设置为0; 当写入字节时,非零位偏移使得该字节中的剩余位被写为0。 字节对齐的写入开始于下一个字节位置。- 另请参见:
-
ImageInputStream
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidflushBefore(long pos)将给定位置之前的所有数据刷新到基础目的地,例如OutputStream或File。voidwrite(byte[] b)在当前位置写入一串字节。voidwrite(byte[] b, int off, int len)在当前位置写入一串字节。voidwrite(int b)将当前位置的单个字节写入流。voidwriteBit(int bit)将由参数的最低有效位给出的单个位写入当前字节位置中当前位偏移量的流。voidwriteBits(long bits, int numBits)将bits参数的numBits最低有效位(bits的顺序)给出的位序列写入当前字节位置当前位偏移量的流。voidwriteBoolean(boolean v)向流中写入一个boolean值。voidwriteByte(int v)将v的8位低位写入流。voidwriteBytes(String s)将一个字符串写入输出流。voidwriteChar(int v)该方法是writeShort的同义词。voidwriteChars(char[] c, int off, int len)在当前位置将一串字符写入流。voidwriteChars(String s)将一个字符串写入输出流。voidwriteDouble(double v)向输出流写入一个由四个字节组成的double值。voidwriteDoubles(double[] d, int off, int len)将当前位置的一系列双精度写入流。voidwriteFloat(float v)向输出流写入一个由四个字节组成的float值。voidwriteFloats(float[] f, int off, int len)在当前位置将一系列浮点写入流。voidwriteInt(int v)将v的32位写入流。voidwriteInts(int[] i, int off, int len)在当前位置写入流的序列。voidwriteLong(long v)将v的64位写入流。voidwriteLongs(long[] l, int off, int len)在当前位置写入流的序列。voidwriteShort(int v)将v的16位低位写入流。voidwriteShorts(short[] s, int off, int len)在当前位置写入流的序列。voidwriteUTF(String s)以网络字节顺序将两个字节的长度信息写入输出流,后跟字符串s中每个字符的 modified UTF-8表示。-
Methods inherited from interface javax.imageio.stream.ImageInputStream
close, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, read, 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, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
-
-
-
-
方法详细信息
-
write
void write(int b) throws IOException将当前位置的单个字节写入流。 忽略了b的24个高位。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用
flushBits的方法ImageOutputStreamImpl来保证这一点。- Specified by:
-
write在接口DataOutput - 参数
-
b- 要写入低8位的int。 - 异常
-
IOException- 如果发生I / O错误。
-
write
void write(byte[] b) throws IOException在当前位置写入一串字节。 如果b.length为0,则不会写入。 字节b[0]首先写入,然后字节b[1]等等。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
write在接口DataOutput - 参数
-
b- 要写入的byte的数组。 - 异常
-
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
write
void write(byte[] b, int off, int len) throws IOException在当前位置写入一串字节。 如果len为0,则不会写入。 首先写入字节b[off],然后字节b[off + 1]等等。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用
flushBits的方法ImageOutputStreamImpl来保证这一点。- Specified by:
-
write在接口DataOutput - 参数
-
b- 要写入的byte的数组。 -
off- 数据中的起始偏移量。 -
len-byte的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负,len,否则为off + len,大于b.length。 -
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
writeBoolean
void writeBoolean(boolean v) throws IOException向流中写入一个boolean值。 如果v为真,则写入值(byte)1; 如果v为false,则写入值(byte)0。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeBoolean在接口DataOutput - 参数
-
v-boolean。 - 异常
-
IOException- 如果发生I / O错误。
-
writeByte
void writeByte(int v) throws IOException将v的8位低位写入流。 忽略了v的24个高位。 (这意味着writeByte与整数参数的作用完全一样)write)如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeByte在接口DataOutput - 参数
-
v- 包含要写入的字节值的int。 - 异常
-
IOException- 如果发生I / O错误。
-
writeShort
void writeShort(int v) throws IOException将v的16位低位写入流。v的16位v被忽略。 如果流使用网络字节顺序,则按顺序写入的字节为:(byte)((v >> 8) & 0xff) (byte)(v & 0xff)否则写入的字节将为:(byte)(v & 0xff) (byte)((v >> 8) & 0xff)如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeShort在接口DataOutput - 参数
-
v- 包含要写入的短值的int。 - 异常
-
IOException- 如果发生I / O错误。
-
writeChar
void writeChar(int v) throws IOException这个方法是writeShort的同义词。- Specified by:
-
writeChar在接口DataOutput - 参数
-
v- 一个包含要写入的char(unsigned short)值的int。 - 异常
-
IOException- 如果发生I / O错误。 - 另请参见:
-
writeShort(int)
-
writeInt
void writeInt(int v) throws IOException将v的32位写入流。 如果流使用网络字节顺序,则按顺序写入的字节为:(byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)Otheriwse,写入的字节将是:(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff)如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeInt在接口DataOutput - 参数
-
v- 一个包含要写入的值的int。 - 异常
-
IOException- 如果发生I / O错误。
-
writeLong
void writeLong(long v) throws IOException将v的64位写入流。 如果流使用网络字节顺序,则按顺序写入的字节为:(byte)((v >> 56) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)否则写入的字节将为:(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 56) & 0xff)如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeLong在接口DataOutput - 参数
-
v- along包含要写入的值。 - 异常
-
IOException- 如果发生I / O错误。
-
writeFloat
void writeFloat(float v) throws IOException向输出流写入一个由四个字节组成的float值。 它这样做是因为,如果它首先将这个float值到int在完全相同的方式Float.floatToIntBits方法,然后在的完全相同的方式写入的int值writeInt方法。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeFloat在接口DataOutput - 参数
-
v- afloat包含要写入的值。 - 异常
-
IOException- 如果发生I / O错误。
-
writeDouble
void writeDouble(double v) throws IOExceptiondouble四个字节组成的double值写入输出流。 它这样做是因为,如果它首先将这个double值到long在完全相同的方式Double.doubleToLongBits方法,然后在完全相同的方式写入长值writeLong方法。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeDouble在接口DataOutput - 参数
-
v- adouble包含要写入的值。 - 异常
-
IOException- 如果发生I / O错误。
-
writeBytes
void writeBytes(String s) throws IOException
将一个字符串写入输出流。 对于字符串s中的每个字符,按顺序,一个字节被写入输出流。 如果s为null,则抛出NullPointerException。如果
s.length为零,则不会写入任何字节。 否则,首先写入字符s[0],然后写入s[1],等等; 写最后一个字符是s[s.length-1]。 对于每个字符,写入一个字节,低字节,按照writeByte方式。 字符串中每个字符的高8位被忽略。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeBytes接口DataOutput - 参数
-
s- aString包含要写入的值。 - 异常
-
NullPointerException- 如果s是null。 -
IOException- 如果发生I / O错误。
-
writeChars
void writeChars(String s) throws IOException
将一个字符串写入输出流。 对于字符串s中的每个字符,按顺序,将两个字节写入输出流,根据当前字节顺序设置进行排序。 如果正在使用网络字节顺序,则首先写入高字节; 否则订单相反。 如果s为null,则抛出NullPointerException。如果
s.length为零,则不会写入任何字节。 否则,首先写入字符s[0],然后写入s[1],等等; 写最后一个字符是s[s.length-1]。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- Specified by:
-
writeChars在接口DataOutput - 参数
-
s- aString包含要写入的值。 - 异常
-
NullPointerException- 如果s是null。 -
IOException- 如果发生I / O错误。
-
writeUTF
void writeUTF(String s) throws IOException
以网络字节顺序将两个字节的长度信息写入输出流,后跟字符串s中每个字符的modified UTF-8表示。 如果s为null,则抛出NullPointerException。 字符串s中的每个字符根据字符的值转换为一个,两个或三个字节的组。如果字符
c在\u0001至\u007f的范围内,则由一个字节表示:(byte)c如果字符
c是\u0000或是在\u0080到\u07ff的范围内,那么它由两个字节表示,按照显示的顺序写:(byte)(0xc0 | (0x1f & (c >> 6))) (byte)(0x80 | (0x3f & c))如果一个字符
c在\u0800到uffff,那么它由三个字节表示,按照显示的顺序写:(byte)(0xe0 | (0x0f & (c >> 12))) (byte)(0x80 | (0x3f & (c >> 6))) (byte)(0x80 | (0x3f & c))首先,计算表示
s所有字符所需的总字节数。 如果这个数字大于65535,则抛出一个UTFDataFormatException。 否则,这个长度以writeShort方式的方式写入输出流; 之后,写入字符串s中每个字符的一字节,二字节或三字节表示。当前字节顺序设置被忽略。
如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
注意:此方法不应用于执行使用标准UTF-8的图像格式,因为此处使用的修改后的UTF-8与标准UTF-8不兼容。
- Specified by:
-
writeUTF在接口DataOutput - 参数
-
s- aString包含要写入的值。 - 异常
-
NullPointerException- 如果s是null。 -
UTFDataFormatException-如果的改性UTF-8表示s需要超过65536个字节。 -
IOException- 如果发生I / O错误。
-
writeShorts
void writeShorts(short[] s, int off, int len) throws IOException在当前位置写入流的序列。 如果len为0,则不会写入。 短s[off]先写,然后短s[off + 1]等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
s- 要写入的short的数组。 -
off- 数据中的起始偏移量。 -
len-short的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负,len,否则为off + len,大于s.length。 -
NullPointerException- 如果s是null。 -
IOException- 如果发生I / O错误。
-
writeChars
void writeChars(char[] c, int off, int len) throws IOException在当前位置将一串字符写入流。 如果len为0,len写任何内容。 charc[off]是先写的,然后是charc[off + 1],等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
c- 要写入的char的数组。 -
off- 数据中的起始偏移量。 -
len-char的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负数,len,否则为off + len,大于c.length。 -
NullPointerException- 如果c是null。 -
IOException- 如果发生I / O错误。
-
writeInts
void writeInts(int[] i, int off, int len) throws IOException在当前位置写入流的序列。 如果len为0,则不会写入。 inti[off]先写,然后是inti[off + 1],等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
i- 要写入的int的数组。 -
off- 数据中的起始偏移量。 -
len-int的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负,len为负数,或off + len为大于i.length。 -
NullPointerException- 如果i是null。 -
IOException- 如果发生I / O错误。
-
writeLongs
void writeLongs(long[] l, int off, int len) throws IOException在当前位置写入流的序列。 如果len为0,则不会写入。 长l[off]先写,然后长l[off + 1],等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
l- 要写入的long的数组。 -
off- 数据中的起始偏移量。 -
len-long的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负数,len为负数,或off + len为大于l.length。 -
NullPointerException- 如果l是null。 -
IOException- 如果发生I / O错误。
-
writeFloats
void writeFloats(float[] f, int off, int len) throws IOException在当前位置将一系列浮点写入流。 如果len为0,则不会写入。 浮动f[off]先写,然后浮动f[off + 1]等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
f- 要编写的float的数组。 -
off- 数据中的起始偏移量。 -
len-float的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负,len,否则为off + len,大于f.length。 -
NullPointerException- 如果f是null。 -
IOException- 如果发生I / O错误。
-
writeDoubles
void writeDoubles(double[] d, int off, int len) throws IOException将当前位置的一系列双精度写入流。 如果len为0,len写任何内容。 双d[off]先写,然后双d[off + 1]等等。 流的字节顺序用于确定写入单个字节的顺序。如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。
- 参数
-
d- 要写入的doubles的数组。 -
off- 数据中的起始偏移量。 -
len-double的len的数量。 - 异常
-
IndexOutOfBoundsException- 如果off为负数,len,否则为off + len,大于d.length。 -
NullPointerException- 如果d是null。 -
IOException- 如果发生I / O错误。
-
writeBit
void writeBit(int bit) throws IOException将由参数的最低有效位给出的单个位写入当前字节位置中当前位偏移量的流。 参数的高31位被忽略。 给定位替换该位置上的前一位。 位偏移前进一并减少模8。如果特定字节的任何位在字节被刷新到目的地时从未被设置,则这些位将自动设置为0。
- 参数
-
bit- 其最低有效位bit的int。 - 异常
-
IOException- 如果发生I / O错误。
-
writeBits
void writeBits(long bits, int numBits) throws IOException将bits参数的bits参数的从左到右顺序的numBits位给出的位序列写入当前字节位置当前位偏移量的流。 上限的64 - numBits位的参数被忽略。 位偏移提前numBits并减小模8。注意,0的位偏移总是表示字节的最高有效位,并且在遇到位时,位的字节顺序写出。 因此,位写入总是以网络字节顺序有效。 实际流字节顺序设置被忽略。位数据可以无限期地累积在存储器中,直到
flushBefore。 那时候,闪存位置之前的所有位数据将被写入。如果特定字节的任何位在字节被刷新到目的地时从未被设置,则这些位将自动设置为0。
- 参数
-
bits-along包含要写入的位,从位置numBits - 1的位开始到最低有效位。 -
numBits- 一个在0和64之间的int(含)。 - 异常
-
IllegalArgumentException- 如果numBits不在0和64之间,包括0和64之间。 -
IOException- 如果发生I / O错误。
-
flushBefore
void flushBefore(long pos) throws IOException将给定位置之前的所有数据刷新到基础目标,例如OutputStream或File。 试图寻求流的冲洗部分将导致一个IndexOutOfBoundsException。- Specified by:
-
flushBefore在接口ImageInputStream - 参数
-
pos- 一个long其中包含可能被刷新到目的地的流前缀的长度。 - 异常
-
IndexOutOfBoundsException- 如果pos位于流的冲洗部分或超过当前流位置。 -
IOException- 如果发生I / O错误。
-
-