|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.imageio.stream.ImageInputStreamImpl javax.imageio.stream.ImageOutputStreamImpl
public abstract class ImageOutputStreamImpl
實作 ImageOutputStream
介面的抽象類別。此類別設計用於減少必須由子類別實作的方法數。
欄位摘要 |
---|
從類別 javax.imageio.stream.ImageInputStreamImpl 繼承的欄位 |
---|
bitOffset, byteOrder, flushedPos, streamPos |
建構子摘要 | |
---|---|
ImageOutputStreamImpl()
建構一個 ImageOutputStreamImpl 。 |
方法摘要 | |
---|---|
protected void |
flushBits()
如果位偏移量為非零,則將當前位元組中的剩餘位強制歸 0,並將串流位置前移一個位元組。 |
void |
write(byte[] b)
將位元組序列寫入到串流中的當前位置。 |
abstract void |
write(byte[] b,
int off,
int len)
將位元組序列寫入到串流中的當前位置。 |
abstract void |
write(int b)
將單個位元組寫入到串流中的當前位置。 |
void |
writeBit(int bit)
將單個位(由參數的最低有效位給定)寫入到串流的當前位元組位置中的當前位偏移量。 |
void |
writeBits(long bits,
int numBits)
將一個位序列(由 bits 參數的 numBits 個最低有效位按從左到右的順序給定)寫入到串流的當前位元組位置中的當前位偏移量。 |
void |
writeBoolean(boolean v)
將一個 boolean 值寫入到串流中。 |
void |
writeByte(int v)
將 v 的 8 個低位寫入到串流中。 |
void |
writeBytes(String s)
將一個字元串寫入輸出串流。 |
void |
writeChar(int v)
此方法與 同義。 |
void |
writeChars(char[] c,
int off,
int len)
將 char 序列寫入到串流中的當前位置。 |
void |
writeChars(String s)
將一個字元串寫入輸出串流。 |
void |
writeDouble(double v)
將一個 double 值寫入輸出串流,該值由四個位元組組成。 |
void |
writeDoubles(double[] d,
int off,
int len)
將 double 序列寫入到串流中的當前位置。 |
void |
writeFloat(float v)
將一個 float 值(由四個位元組組成)寫入輸出串流。 |
void |
writeFloats(float[] f,
int off,
int len)
將 float 序列寫入到串流中的當前位置。 |
void |
writeInt(int v)
將 v 的 32 個位寫入到串流中。 |
void |
writeInts(int[] i,
int off,
int len)
將 int 序列寫入到串流中的當前位置。 |
void |
writeLong(long v)
將 v 的 64 個位寫入到串流中。 |
void |
writeLongs(long[] l,
int off,
int len)
將 long 序列寫入到串流中的當前位置。 |
void |
writeShort(int v)
將 v 的 16 個低位寫入到串流中。 |
void |
writeShorts(short[] s,
int off,
int len)
將 short 序列寫入到串流中的當前位置。 |
void |
writeUTF(String s)
將表示長度資訊的兩個位元組按網路位元組順序寫入輸出串流,後跟字元串 s 中每個字元的 UTF-8 修改版表示形式。 |
從類別 javax.imageio.stream.ImageInputStreamImpl 繼承的方法 |
---|
checkClosed, close, finalize, flush, flushBefore, 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 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
從介面 javax.imageio.stream.ImageOutputStream 繼承的方法 |
---|
flushBefore |
從介面 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 |
建構子詳細資訊 |
---|
public ImageOutputStreamImpl()
ImageOutputStreamImpl
。
方法詳細資訊 |
---|
public abstract void write(int b) throws IOException
ImageOutputStream
複製的描述b
的 24 個高位將被忽略。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。實作方可使用
的 ImageOutputStreamImpl
方法來保證這一點。
flushBits
DataOutput
中的 write
ImageOutputStream
中的 write
b
- 一個 int
,其低 8 位將被寫入。
IOException
- 如果發生 I/O 錯誤。public void write(byte[] b) throws IOException
ImageOutputStream
複製的描述b.length
為 0,則不寫入任何位元組。首先寫入位元組 b[0]
,然後寫入位元組 b[1]
,依此類別推。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 write
ImageOutputStream
中的 write
b
- 要寫入的 byte
陣列。
IOException
- 如果發生 I/O 錯誤。public abstract void write(byte[] b, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入位元組 b[off]
,然後寫入位元組 b[off + 1]
,依此類別推。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。實作方可使用
的 ImageOutputStreamImpl
方法來保證這一點。
flushBits
DataOutput
中的 write
ImageOutputStream
中的 write
b
- 要寫入的 byte
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 byte
數。
IOException
- 如果發生 I/O 錯誤。public void writeBoolean(boolean v) throws IOException
ImageOutputStream
複製的描述boolean
值寫入到串流中。如果 v
為 true,則寫入值 (byte)1
;如果 v
為 false,則寫入值 (byte)0
。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeBoolean
ImageOutputStream
中的 writeBoolean
v
- 要寫入的 boolean
值。
IOException
- 如果發生 I/O 錯誤。public void writeByte(int v) throws IOException
ImageOutputStream
複製的描述v
的 8 個低位寫入到串流中。忽略 v
的 24 個高位。(這意味著 writeByte
的作用與使用整數做參數的 write
完全相同。)
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeByte
ImageOutputStream
中的 writeByte
v
- 一個 int
,包含要寫入的 byte 值。
IOException
- 如果發生 I/O 錯誤。public void writeShort(int v) throws IOException
ImageOutputStream
複製的描述v
的 16 個低位寫入到串流中。忽略 v
的 16 個高位。如果串流使用網路位元組順序,則寫入的位元組將依次為:
(byte)((v >> 8) & 0xff) (byte)(v & 0xff)否則,寫入的位元組將為:
(byte)(v & 0xff) (byte)((v >> 8) & 0xff)
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeShort
ImageOutputStream
中的 writeShort
v
- 一個 int
,包含要寫入的 short 值。
IOException
- 如果發生 I/O 錯誤。public void writeChar(int v) throws IOException
ImageOutputStream
複製的描述writeShort
同義。
DataOutput
中的 writeChar
ImageOutputStream
中的 writeChar
v
- 一個 int
,它包含要寫入的 char(無符號 short)值。
IOException
- 如果發生 I/O 錯誤。ImageOutputStream.writeShort(int)
public void writeInt(int v) throws IOException
ImageOutputStream
複製的描述v
的 32 個位寫入到串流中。如果串流使用網路位元組順序,則寫入的位元組將依次為:
(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)
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeInt
ImageOutputStream
中的 writeInt
v
- 一個 int
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeLong(long v) throws IOException
ImageOutputStream
複製的描述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。
DataOutput
中的 writeLong
ImageOutputStream
中的 writeLong
v
- 一個 long
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeFloat(float v) throws IOException
ImageOutputStream
複製的描述float
值(由四個位元組組成)寫入輸出串流。實作方式是:首先使用與 Float.floatToIntBits
方法完全相同的方式將此 float
值轉換為一個 int
值,然後使用與 writeInt
方法完全相同的方式寫入該 int
值。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeFloat
ImageOutputStream
中的 writeFloat
v
- 一個 float
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeDouble(double v) throws IOException
ImageOutputStream
複製的描述double
值寫入輸出串流,該值由四個位元組組成。實作這一點的方式是:首先使用與 Double.doubleToLongBits
方法相同的方式將此 double
值轉換為一個 long
值,然後使用與 writeLong
方法完全相同的方式寫入該 long
值。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeDouble
ImageOutputStream
中的 writeDouble
v
- 一個 double
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeBytes(String s) throws IOException
ImageOutputStream
複製的描述s
中的每一個字元被依次寫入輸出串流,每個字元用一個位元組表示。如果 s
為 null
,則拋出 NullPointerException
。
如果 s.length
為零,則不寫入任何位元組。否則,首先寫入字元 s[0]
,然後寫入字元 s[1]
,依此類別推;最後一個寫入字元是 s[s.length-1]
。對於每個字元,將使用與 writeByte
方法完全相同的方式把字元的低位寫入一個低位位元組。字元串中每個字元的八個高位將被忽略。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeBytes
ImageOutputStream
中的 writeBytes
s
- 一個 String
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeChars(String s) throws IOException
ImageOutputStream
複製的描述s
中的每個字元將根據當前位元組順序設置依次寫入輸出串流,每個字元用兩個位元組表示。如果使用網路位元組順序,則首先寫入高位位元組;否則相反。如果 s
為 null
,則拋出 NullPointerException
。
如果 s.length
為零,則不寫入位元組。否則,首先寫入字元 s[0]
,然後寫入字元 s[1]
,依此類別推;最後一個寫入字元是 s[s.length-1]
。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
DataOutput
中的 writeChars
ImageOutputStream
中的 writeChars
s
- 一個 String
,它包含要寫入的值。
IOException
- 如果發生 I/O 錯誤。public void writeUTF(String s) throws IOException
ImageOutputStream
複製的描述s
中每個字元的 UTF-8 修改版表示形式。如果 s
為 null
,則拋出 NullPointerException
。根據字元的值,將字元串 s
中每個字元轉換成一個位元組、兩個位元組或三個位元組的位元組組。
如果字元 c
在 \u0001
到 \u007f
的範圍內,則用一個位元組表示:
(byte)(b)
如果字元 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
中所有字元的 1 位元組、2 位元組或 3 位元組表示形式。
忽略當前位元組順序設置。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
註:使用標準 UTF-8 圖像格式的實作不應該使用此方法,因為此處使用的 UTF-8 修改版與標準 UTF-8 不相容。
DataOutput
中的 writeUTF
ImageOutputStream
中的 writeUTF
s
- 一個 String
,它包含要寫入的值。
UTFDataFormatException
- 如果 s
的 UTF-8 修改版表示形式要求的位元組數大於 65536。
IOException
- 如果發生 I/O 錯誤。public void writeShorts(short[] s, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 short s[off]
,然後寫入 short s[off + 1]
,依此類別推。串流的位元組順序用來確定寫入各個位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeShorts
s
- 要寫入的 short
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 short
數。
IOException
- 如果發生 I/O 錯誤。public void writeChars(char[] c, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 char c[off]
,然後寫入 char c[off + 1]
,依此類別推。串流的位元組順序用來確定寫入個別位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeChars
c
- 要寫入的 char
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 char
數。
IOException
- 如果發生 I/O 錯誤。public void writeInts(int[] i, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 int i[off]
,然後寫入 int i[off + 1]
,依此類別推。串流的位元組順序用來確定寫入個別位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeInts
i
- 要寫入的 int
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 int
數。
IOException
- 如果發生 I/O 錯誤。public void writeLongs(long[] l, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 long l[off]
,然後寫入 long l[off + 1]
,依此類別推。串流的位元組順序用來確定寫入個別位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeLongs
l
- 要寫入的 long
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 long
數。
IOException
- 如果發生 I/O 錯誤。public void writeFloats(float[] f, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 float f[off]
,然後寫入 float f[off + 1]
,依此類別推。串流的位元組順序用來確定寫入個別位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeFloats
f
- 要寫入的 float
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 float
數。
IOException
- 如果發生 I/O 錯誤。public void writeDoubles(double[] d, int off, int len) throws IOException
ImageOutputStream
複製的描述len
為 0,則不寫入任何位元組。首先寫入 double d[off]
,然後寫入 double d[off + 1]
,依此類別推。串流的位元組順序用來確定寫入個別位元組的順序。
如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。
ImageOutputStream
中的 writeDoubles
d
- 要寫入的 double
陣列。off
- 資料中的初始偏移量。len
- 要寫入的 double
數。
IOException
- 如果發生 I/O 錯誤。public void writeBit(int bit) throws IOException
ImageOutputStream
複製的描述如果在刷新某個位元組的緩衝並轉送到目標時一直沒有設置過該位元組的某些位,則這些位將被自動設置為 0。
ImageOutputStream
中的 writeBit
bit
- 一個 int
,其最低有效位將被寫入到串流中。
IOException
- 如果發生 I/O 錯誤。public void writeBits(long bits, int numBits) throws IOException
ImageOutputStream
複製的描述bits
參數的 numBits
個最低有效位按從左到右的順序給定)寫入到串流的當前位元組位置中的當前位偏移量。忽略參數的高 64 - numBits
位。位偏移量將加 numBits
並減少模數 8。注意,位偏移量 0 總是指示位元組的最高有效位,位位元組按照遇到它們的順序依次被寫入。因此以網路位元組順序進行位的寫入總是有效的。忽略實際串流位元組順序設置。
在調用 flushBefore
之前,位資料可以在記憶體中無限累積。調用時將寫入刷新位置之前的所有位資料。
如果在刷新位元組緩衝並轉到目標時特定位元組的某些位一直沒有被設置,則這些位將自動設置為 0。
ImageOutputStream
中的 writeBits
bits
- 一個 long
,它包含要寫入的位(從 numBits - 1
開始下至最低有效位)。numBits
- 一個 0 到 64 之間(包括兩者)的 int
。
IOException
- 如果發生 I/O 錯誤。protected final void flushBits() throws IOException
write(int)
和 write(byte[], int, int)
方法時應該調用此方法。
IOException
- 如果發生 I/O 錯誤。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。