Java - I/O流

来源:互联网 发布:广发东财大数据精选 编辑:程序博客网 时间:2024/05/21 10:36


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
原创粉丝点击