A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© d342784178 中级黑马   /  2015-1-31 09:41  /  1228 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近在流的学习中碰到一些问题
就是使用字符流的时候有时候不能写入文件 需要flush一下才行
而使用 字节流的时候则不用flush
网上有说当用到缓冲区的需要flush
可是用字节流的时候不也是用了byte[]缓冲吗
请大神赐教!

4 个回复

倒序浏览
字节不需要刷新吧,flush是缓冲区的特有方法呀,
回复 使用道具 举报
  1.         BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("a.txt"));
  2.                
  3.                 bos.write("hello".getBytes());
  4.                
  5.                 bos.flush();//若是没flush的话,是不能将hello写到a.txt的
  6. //现在我没有写close方法,为的就是测试flush在字节缓冲区的也是起作用的。
复制代码


回复 使用道具 举报
字节流用的是系统底层资源,不需要flush;字符流,系统调用不到,必须flush
回复 使用道具 举报
字符流的flush是进行刷新,将数据直接写到目的地中,
但是用关闭流close,关闭资源。在关闭前会自动调用flush刷新缓冲中的数据到目的地。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马