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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© \(^o^)/ 中级黑马   /  2014-5-7 10:26  /  969 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 \(^o^)/ 于 2014-5-9 19:01 编辑
  1. public static void copy() throws IOException
  2. {
  3. FileWriter fw=new FileWriter("1.txt");

  4. FileReader fr=new FileReader("RuntimeDemo.java");



  5. int c=0;

  6. while((c=fr.read())!=-1)
  7. {
  8. fw.write(c);
  9. }
  10. fw.close();
  11. fr.close();
  12. }
  13. public static void Rea() throws IOException
  14. {
  15. FileReader fr=new FileReader("RuntimeDemo.java");

  16. char[] ch=new char[1024];

  17. int c=0;
  18. while((c=fr.read(ch))!=-1)
  19. {
  20. System.out.print(new String(ch,0,c));
  21. }
  22. }
复制代码
为什么上面的函数需要关闭流,而下面的不需要?

3 个回复

倒序浏览
下面的也需要关闭流吧
回复 使用道具 举报
其实两个都是需要关闭的,如果不关闭就一直占用资源,造成资源浪费,在一个就是关闭流最好放在finally中,如果出现异常,想关也就关不上了。
回复 使用道具 举报
都是需要的,只是你下面没有写而已, 流的关闭不是强制性的,也就是说你不关流 程序也能继续运行,但是会占用资源,导致资源浪费, 所以所说的关流,只是一个规范动作,是提升程序优异性的操作.而非导致程序出错的异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马