Module java.base
Package java.io

Class OutputStream

java.lang.Object
java.io.OutputStream
所有已实现的接口:
Closeable, Flushable, AutoCloseable
直接已知的子类:
ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, PipedOutputStream

public abstract class OutputStream extends Object implements Closeable, Flushable
这个抽象类是表示字节输出流的所有类的超类。输出流接受输出字节并将它们发送到某个目标。

需要定义OutputStream子类的应用程序必须始终提供至少一个写入一个输出字节的方法。

自从:
1.0
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    子类调用的构造函数。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close()
    关闭此输出流并释放与此流关联的任何系统资源。
    void
    flush()
    刷新此输出流并强制写出任何缓冲的输出字节。
    static OutputStream
    返回一个新的OutputStream,它丢弃所有字节。
    void
    write(byte[] b)
    从指定的字节数组中写入b.length字节到此输出流。
    void
    write(byte[] b, int off, int len)
    从指定的字节数组开始的偏移量off处写入len字节到此输出流。
    abstract void
    write(int b)
    将指定的字节写入此输出流。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • OutputStream

      public OutputStream()
      子类调用的构造函数。
  • Method Details

    • nullOutputStream

      public static OutputStream nullOutputStream()
      返回一个新的OutputStream,它丢弃所有字节。返回的流最初是打开的。通过调用close()方法关闭流。随后对close()的调用不起作用。

      在流打开时,write(int)write(byte[])write(byte[], int, int)方法均不起作用。在流关闭后,这些方法都会抛出IOException

      flush()方法不起作用。

      返回:
      丢弃所有字节的OutputStream
      自从:
      11
    • write

      public abstract void write(int b) throws IOException
      将指定的字节写入此输出流。 write的一般约定是将一个字节写入输出流。要写入的字节是参数b的八个低位。参数b的24个高位被忽略。
      参数:
      b - 字节。
      抛出:
      IOException - 如果发生I/O错误。特别地,如果输出流已关闭,可能会抛出IOException
    • write

      public void write(byte[] b) throws IOException
      从指定的字节数组中写入b.length字节到此输出流。 write(b)的一般约定是它应该与调用write(b, 0, b.length)具有完全相同的效果。
      参数:
      b - 数据。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • write

      public void write(byte[] b, int off, int len) throws IOException
      从指定的字节数组的偏移量off开始写入len字节到此输出流。 write(b, off, len)的一般约定是数组b中的一些字节按顺序写入输出流;元素b[off]是此操作写入的第一个字节,b[off+len-1]是此操作写入的最后一个字节。

      如果bnull,则会抛出NullPointerException

      如果off为负数,或len为负数,或off+len大于数组b的长度,则会抛出IndexOutOfBoundsException

      API注释:
      鼓励子类重写此方法并提供更有效的实现。
      实现要求:
      OutputStreamwrite方法在要写出的每个字节上调用一个参数的写方法。
      参数:
      b - 数据。
      off - 数据中的起始偏移量。
      len - 要写入的字节数。
      抛出:
      IOException - 如果发生I/O错误。特别地,如果输出流已关闭,可能会抛出IOException
      IndexOutOfBoundsException - 如果off为负数,len为负数,或len大于b.length - off
    • flush

      public void flush() throws IOException
      刷新此输出流并强制写出任何缓冲的输出字节。 flush的一般约定是调用它表示,如果先前写入的任何字节已被输出流的实现缓冲,则应立即将这些字节写入其预期的目的地。

      如果此流的预期目的地是底层操作系统提供的抽象,例如文件,则刷新流仅保证先前写入流的字节被传递给操作系统进行写入;它不保证它们实际被写入物理设备,如磁盘驱动器。

      指定者:
      flush 在接口 Flushable
      实现要求:
      OutputStreamflush方法不起作用。
      抛出:
      IOException - 如果发生I/O错误。
    • close

      public void close() throws IOException
      关闭此输出流并释放与此流关联的任何系统资源。 close的一般约定是关闭输出流。关闭的流不能执行输出操作,也不能重新打开。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      实现要求:
      OutputStreamclose方法不起作用。
      抛出:
      IOException - 如果发生I/O错误。