Output Streams

 

This class provides the fundamental methods needed to write data. These are:

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

 

所有子类须实现write(int b),所有子类都是针对某种输出方式,如FileOutputStream是向文件写内容,TelnetOutputStream是向网络对端写内容。

 

 

从Output Streams的接口可看出它只支持写字节, 它不管里面是什么格式的内容,该类只负责把一堆字节写出去。

 

 

下面是一个例子用于循环把可打印的ASCII码写出去,该函数必须抛出异常,而不能自己内部处理这个异常,因为在网络连接中,当连接中断会以抛出异常来结束,该端代码如在服务器端,顶层函数需要通过空上异常来结束发送ASCII码。

 

 

 


还有一个需要注意的地方是flush() 函数,最明智的做法是经常使用flush函数,因为它的开销很小,但如果不使用该函数,有可能在服务器和客户端出现死锁的情况:

当服务器发送了100个字节数据,然后开始等待接收响应,但该数据并没有发送到客户端,而是停在缓存中。客户端这时候也在等待服务器端的消息。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值