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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;
  2. class ReadAndWrite
  3. {
  4. public static void main(String[] args) throws IOException
  5. {
  6. File files =new File("c:\\log_config.dat");
  7. File files1 = new File("d:\\log_config.dat");
  8. if (!files1.exists())
  9. {
  10. files1.createNewFile();
  11. }

  12. FileInputStream fis = new FileInputStream(files);
  13. FileOutputStream fos =new FileOutputStream(files1);

  14. byte[] data = new byte[1024];
  15. int lon =0;

  16. while((lon=fis.read(data)) != -1)
  17. {
  18. fos.write(data);
  19. //fos.flush();
  20. //不用刷新也可以??后边有一个关流的动作。
  21. }

  22. fis.close();
  23. fos.close();//测试结果跟这个没有关系。

  24. //System.out.println("Hello World!");
  25. }
  26. }
复制代码
为什么把刷新注释了数据依然被写入了呢,字节流是不刷新就不会出来的么。难道字符流可以不用刷新?或者是我又记错了??

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

13 个回复

倒序浏览
字节输出流不需要刷新,字符流刷新是因为在底层调用了字节流,然后将其存入一个数组,因为内部封装了缓冲,所以字符流需要刷新。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
因为字节流内部封装了一个缓冲区,缓冲区中有一个数组用来存储数据,并且在内部自动刷新,而自符流则需要手动刷新。
回复 使用道具 举报
26.fis.close();在close()的时候是先刷新再关闭的。
回复 使用道具 举报
flush() 是把缓冲区的数据强行输出
       主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush()。
回复 使用道具 举报
close()方法是先刷新后关闭流。用close()可以不刷新。
回复 使用道具 举报
韩新凯 发表于 2012-4-22 21:46
close()方法是先刷新后关闭流。用close()可以不刷新。

把close()注释了依然成功 你试试去。
回复 使用道具 举报
耿世玉 发表于 2012-4-23 09:54
把close()注释了依然成功 你试试去。

楼上是正确的:字节输出流不需要刷新,字符流刷新是因为在底层调用了字节流,然后将其存入一个数组,因为内部封装了缓冲,所以字符流需要刷新。
你的那个while语句好像没有必要。
回复 使用道具 举报
韩新凯 发表于 2012-4-23 15:10
楼上是正确的:字节输出流不需要刷新,字符流刷新是因为在底层调用了字节流,然后将其存入一个数组,因为 ...

如果文件很大的话试试。
哥们你准备赶第几期啊?
回复 使用道具 举报
耿世玉 发表于 2012-4-23 17:04
如果文件很大的话试试。
哥们你准备赶第几期啊?

第九期看来赶不上了,基础视频还没看完呢,天天上课时间太紧张了。赶10期和期末考试时间冲突了,不敢挂啊,挂了就要清考了。目前准备11期。你呢?
回复 使用道具 举报
韩新凯 发表于 2012-4-23 17:08
第九期看来赶不上了,基础视频还没看完呢,天天上课时间太紧张了。赶10期和期末考试时间冲突了,不敢挂啊 ...

我想九期 啊 不过时间有点紧张。  同学都提交过入学的试题了,我比他晚开始了半个月。正在努力中啊。。。。加油呵呵。
回复 使用道具 举报
耿世玉 发表于 2012-4-23 17:12
我想九期 啊 不过时间有点紧张。  同学都提交过入学的试题了,我比他晚开始了半个月。正在努力中啊。。。 ...

视频看完了没有?看了多长时间?一起加油。
回复 使用道具 举报
韩新凯 发表于 2012-4-23 17:13
视频看完了没有?看了多长时间?一起加油。

一个月多点儿。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马