抽象類 OutputStream 實作了 Closeable 和 Flushable 接口。是以 OutputStream 中有對應 close 和 flush 方法的實作。
OutputStream 和 InputStream 相對應。
InputStream 的源碼分析見:http://blog.csdn.net/yx0628/article/details/79343633
方法
write(int b)
将指定的一個位元組寫入此輸出流。int 值為 4 個位元組,此方法丢棄 int 類型高位的 3 個位元組,隻保留低位的 1 個位元組寫入(對位元組來說,轉為 int 其 3 個高位位元組都是全 0 的,是以可以丢棄)。此方法是抽象方法,子類必須要進行實作。
public abstract void write(int b) throws IOException;
write(byte b[])
将 b.length 個位元組從指定的 byte 數組寫入此輸出流。調用下邊的 write 方法。
public void write(byte b[]) throws IOException {
write(b, , b.length);
}
write(byte b[], int off, int len)
将指定 byte 數組中從偏移量 off 開始的 len 個位元組寫入此輸出流。
public void write(byte b[], int off, int len) throws IOException {
// 如果位元組數組為空,抛出異常
if (b == null) {
throw new NullPointerException();
} else if ((off < ) || (off > b.length) || (len < ) ||
((off + len) > b.length) || ((off + len) < )) {
// 如果下标及範圍不合适,抛出範圍異常。
throw new IndexOutOfBoundsException();
} else if (len == ) {
// 如果寫入長度為0,不需要處理
return;
}
// 從off下标處開始寫入每一個位元組到輸出流。
for (int i = ; i < len ; i++) {
write(b[off + i]);
}
}
flush()
重新整理此輸出流并強制寫出所有緩沖的輸出位元組。此類未實作具體行為,子類應該複寫此方法。
public void flush() throws IOException {
}
close()
關閉此輸出流并釋放與此流有關的所有系統資源,此類未實作具體行為,子類應該複寫此方法。
public void close() throws IOException {
}