OutputSream是一个抽象类,属于字节流的写。
import java.io.Closeable; import java.io.Flushable; import java.io.IOException; /** * 该抽象类是所有字节输出流的超类。一个输出流接受输出字节并将它们发送到池里(sink) * 定义OutputStream的子类至少要实现写一个字节到输出流这个方法。 * */ public abstract class OutputStream implements Closeable, Flushable { /** * 将特定的字节写到输出流。一般是将一个字节写到输出流。要写入的字节是参数b的低8位,高24位将被忽略。 * * @param b the <code>byte</code>. * @exception IOException if an I/O error occurs. In particular, * an <code>IOException</code> may be thrown if the * output stream has been closed. */ public abstract void write(int b) throws IOException; /** * 从给定的字节数组写到输出流b.length个字节。 * * @param b the data. * @exception IOException if an I/O error occurs. * @see java.io.OutputStream#write(byte[], int, int) */ public void write(byte b[]) throws IOException { write(b, 0, b.length); } /** * 从给定的字节数组起始偏移地址为off读取字节数目为len有序写到输出流中。 * 第一个写入的字节是b[off],最后一个写入的字节是b[off+len-1]。 * * @param b the data. * @param off 数据的起始偏移地址. * @param len 写到输出流的字节数目. * @exception IOException if an I/O error occurs. In particular, * an <code>IOException</code> is thrown if the output * stream is closed. */ public void write(byte b[], int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); } else if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return; } for (int i = 0 ; i < len ; i++) { write(b[off + i]); } } /** * 刷新输出流并强制将缓存字节写完。它不保证这些数据被真的写入物理设备。 * * @exception IOException if an I/O error occurs. */ public void flush() throws IOException { } /** * 关闭输出流并释放与其相关的系统资源。已关闭的流无法执行输出操作且不能被重新打开。 * * @exception IOException if an I/O error occurs. */ public void close() throws IOException { } } |