3.1.2 基本输出流
与InputStream类相对应的OutputStream类表示的是基本的输出流,用来把数据从程序中输出到其他地方。基本的OutputStream类的对象也是在字节这个层次上进行操作的。其中最主要的是写入数据的write方法。同InputStream类中的read方法一样,write方法也有3种类似的重载形式,可以每次写入一个字节,也可以写入一个字节数组中的全部或部分内容。
而在流的控制方面,OutputStream类除了关闭流的close方法之外,还有一个flush方法用来强制要求OutputStream类的对象对暂时保存在内部缓冲区中的内容立即进行实际的写入操作。有些OutputStream类的子类会在内部维护一个缓冲区,通过write方法写入的数据会被首先存放在这个缓冲区中,然后在某个合适的时机再一次性地执行已缓冲的内容的实际写入操作。这种实现方式的出发点是为了性能考虑,减少实际的写入操作次数。在通常的使用场景中,OutputStream类的对象的使用者一般不需要直接调用flush方法来保证内部缓冲区的数据被成功写入。这是因为当OutputStream类的对象的内部的缓冲区满了之后,会自动执行实际的写入操作。同时在OutputStream类的对象被关闭时,flush方法一般也会被自动调用。