java的基本输出流类是java.io.OutputStream
public abstract class OutputStream{
public abstract void write(int b) throws IOException;
public void write(byte[] data) throws IOException{}
public void write(byte[] data,int offset,int length) throws IOException{}
public void flush() throws IOException{}
public void close() throws IOException{}
}
OutputStream 的子类使用这些方法向特定介质写入数据。
FileOutputStream使用这些方法将数据写入文件。
TelnetOutputStream将数据写入网络连接。
ByteArrayOutputStream将数据写入可扩展的字节数组。
OutputStream的基本方法是write(int b)。这个方法接收一个0到255之间的整数作为参数,将对应的字节写入到输出流中。
flush方法是刷新
例如:假设已经向使用http keep-alive 的http1.1服务器写入了300字节的请求,通常会等待响应,然后再发送更多的数据。不过,如果输出流有一个1024字节的缓冲区,那么这个流在发送缓冲区中的数据之前会等待更多的数据到达。在服务器响应到达之前不会向流中写入更多的数据,但是响应永远不会到来,因为请求还没有发送!flush方法可以强迫缓冲的流发送数据,即使缓冲区还没有满,以此来打破这种死锁状态。