黑马程序员技术交流社区

标题: 键盘录入的字节流,需要写关闭资源代码吗? [打印本页]

作者: 伯爵公子    时间: 2015-7-22 08:37
标题: 键盘录入的字节流,需要写关闭资源代码吗?
昨天在学习从键盘录入字节流数据,打印到控制台。
  1. import java.io.IOException;
  2. import java.io.InputStream;

  3. class ReadKeyDemo
  4. {
  5.         public static void main(String[] args) throws IOException
  6.         {
  7.                 //获取键盘读取流
  8.                 InputStream is = System.in;
  9.                
  10.                 //创建容易,接收字符流
  11.                 StringBuilder sb = new StringBuilder();

  12.                 int ch = 0;//定义变量记录读取到的字节,并循环获取
  13.                 while ((ch=is.read())!=-1)
  14.                 {
  15.                         //在存储之前需要判断是否是换行标记,是的话不存储
  16.                         if (ch=='\r')
  17.                         {
  18.                                 continue;
  19.                         }
  20.                         if (ch=='\n')
  21.                         {
  22.                                 String temp = sb.toString();
  23.                                 if ("over".equals(temp))
  24.                                 {
  25.                                         break;
  26.                                 }
  27.                                 System.out.println(temp.toUpperCase());
  28.                                 sb.delete(0,sb.length());
  29.                         }
  30.                         else
  31.                                 sb.append((char)ch);//将读取到的字节存储到StringBuilder中
  32.                 }
  33.         }
  34. }
复制代码

代码中没有关闭读写流的is.close();本人查看了其他几个资料。有的有,有的没有,不知道具体怎么解释,个人认为是键盘录入,只要停止录入或退出了就相当于关闭了,就没必要写了,不知道正确与否?请赐教
作者: LGQ    时间: 2015-7-22 11:14
我觉得关闭一下还是好的,本人刚学的,也不是太会,但是我认为在一个练习小程序里可能用不到关闭,以后做一些大一点的东西可能会用到,还是尽早习惯严谨一点的编程模式,以上纯属菜鸟回答,要是牵扯到什么逻辑性语法的错误请指出
作者: gaoming971366    时间: 2015-7-22 11:20
我觉得最好关上,这样节省了内存空间,虽然gc机制会自动清理垃圾
作者: 伯爵公子    时间: 2015-7-23 09:24
LGQ 发表于 2015-7-22 11:14
我觉得关闭一下还是好的,本人刚学的,也不是太会,但是我认为在一个练习小程序里可能用不到关闭,以后做一 ...

关了肯定万事大吉,主要是当时输入流为键盘,输出流为文件,代码只关闭了输出流,没有关闭输入流。所以觉得键盘输入应该不用关闭流资源。
作者: 伯爵公子    时间: 2015-7-23 09:25
gaoming971366 发表于 2015-7-22 11:20
我觉得最好关上,这样节省了内存空间,虽然gc机制会自动清理垃圾

关了肯定万事大吉,主要是当时输入流为键盘,输出流为文件,代码只关闭了输出流,没有关闭输入流。所以觉得键盘输入应该不用关闭流资源。
作者: 以梦为码    时间: 2015-7-23 10:08
必须关流,
作者: 郁金香大公爵    时间: 2015-7-23 10:29
只要是资源,使用完就必须关闭!我记得在学习基础视频中,这是讲过的
作者: 伯爵公子    时间: 2015-7-24 09:05
以梦为码 发表于 2015-7-23 10:08
必须关流,

那你觉得DataInputStream 和DateOutputStream.
作者: 一城一世界    时间: 2015-7-24 09:31
键盘输入,使用完要关闭吧
作者: xclyijin    时间: 2015-7-24 09:33
我也觉得应该关流,用完就关比较安全。
作者: 伯爵公子    时间: 2015-7-25 11:04
一城一世界 发表于 2015-7-24 09:31
键盘输入,使用完要关闭吧

最近看了,确实需要关闭
作者: 伯爵公子    时间: 2015-7-25 11:42
xclyijin 发表于 2015-7-24 09:33
我也觉得应该关流,用完就关比较安全。

是的,关了严谨




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2