Java - I/O流


close() 

使用流后一定要记得及时关闭流

<span style="font-size:14px;">try{
	if(pis != null) 
		pis.close(); 
} catch(IOException e){
	e.printStackTrace();
}</span>

当流对象为 null 时,调用 close() 会报空指针异常,所以必须先判断流对象非空,再关闭。 


write() 写输出

1  写int

write()一般可以直接写如 int 数据

2  写字符串

write() 写入字符串时,需要把是字符串转化为字节数组:

pos.write("Hello Customer, I am Producer.".getBytes());

3  写字节数组

write(buffer)  将整个 buffer 写入输出流

write(buffer, 0, len)  将 buffer 中从偏移量 off 开始的 len 个字节写入此输出流。



flush()

使用流时,一般都会有一个缓冲区。我们把要发的数据先放到缓冲区,缓冲区满后再一次性发出,而不是写一次发一次。

flush() 可以强制将缓冲区中的数据发送出去,不必等到缓冲区满。

如果不使用flush() ,当你写入的数据量很小时,数据可能一直在缓冲区中,对方可能读取不到数据。

所以,write() 后面一般都有 flush() 。




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值