黑马程序员技术交流社区
标题:
写入转换流问题咨询!!
[打印本页]
作者:
涐扪①起奮乧
时间:
2013-11-11 10:00
标题:
写入转换流问题咨询!!
本帖最后由 涐扪①起奮乧 于 2013-11-11 15:32 编辑
import java.io.*;
class TranStreamDemo
{
public static void main(String[] args) throws IOException
{
//获取键盘录入对象
InputStream in = System.in;//这一步用a记录住
//将字节流对象转成字符流对象,使用转换流InputStreamReader
InputStreamReader isr = new InputStreamReader(in);//用b记住这一步。
//为了提高效率,将字符串进行缓冲区技术操作,使用BufferedReader
BufferedReader bufr = new BufferedReader(isr);//这一步用c来记录
String line = null;
while((line = bufr.readLine())!=null)
{
if("over".equals(line))//这一步要写,不然的话只能利用快捷键Ctrl+c来强制结束输入。
break;
System.out.println(line.toUpperCase());
}
//bufr.close();//这样写程序也能执行
isr.close();//???为什么程序也能执行
}
}
复制代码
bufr.close();//这样写程序也能执行
isr.close();//???为什么程序也能执
以上两句代码,写那一句程序都能执行,这两句代码是不是指的都是关闭同一个流?具体有没有什么细微的区别没?还请指点
作者:
FFF
时间:
2013-11-11 10:26
本帖最后由 FFF 于 2013-11-11 10:28 编辑
InputStreamReader isr = new InputStreamReader(in);
InputStreamReader中的.close()方法为关闭该流并释放与之关联的所有资源。
BufferedReader中的
close()
关闭该流并释放与之关联的所有资源。
不同的流,但是两个流有关联、
没有实质上的区别,都是关闭并释放所有与之关联的区别,这两个都关联了!
作者:
小西。。。
时间:
2013-11-11 12:27
这两句代码关闭的都是isr流,释放相应的资源,但是建议使用bufr.close(),因为这个close()还关闭了bufr的相关资源;
望版主采纳,能进黑马就靠积分了{:soso_e154:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2