Seachal 2016-06-08 14:44 采纳率: 100%
浏览 1579
已采纳

Java IO 流 为什么不写fis.close()?

try {
/*

  • openFileInput(String)是父类提供的方法, 可以直接获取data目录下指定文件的输入流 / FileInputStream fis = openFileInput("info.txt"); //// 从文件字节输入流转为 字节转字符输入流 ,然后再转为缓存字符流, BufferedReader bf = new BufferedReader(new InputStreamReader( fis)); // 因为保存时数据只有一行,因此读取一次就可以 String readLine = bf.readLine(); bf.close(); /
  • 数据是用户名##密码的形式存储的, 因此需要根据##对http://ask.csdn.net/?ref=toolbar#字符串进行切割 */ 为什么不写fis.close()?
  • 写回答

4条回答 默认 最新

  • qq_1287714155 2016-06-08 16:12
    关注

    封装:
    本质对于装饰者模式比如
    BufferedReader br=new BufferedReader(new InpuStreamReader(System.in));
    从最外层流开始关闭,就相当于里层的已经调用了close();
    就只需要br.close(),即可都实现关闭,底层顺序依然还是先System.in.close()>>>InputStreamRreader().close()>>>br.close();

    非封装:
    以我的理解输入流读取的文件或者字符串已经读完了会自动返回一个"-1"or"null";通过底层判断就会自动调用close吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)