java中IO流操作怎样关闭流

我说的意思是当关闭流时一般都先判断是否为空,如果不为空才进行关闭,例如if(in!=null)try{in.close();}catch(IOExectione){};此... 我说的意思是当关闭流时一般都先判断是否为空,如果不为空才进行关闭,例如if(in!=null)try{in.close();}catch(IOExection e){};此处的in代表输入流。那么当in=null时是什么意思? 展开
 我来答
弓真长
推荐于2017-10-14 · 超过12用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:22.2万
展开全部
如果 in == null,就说明 in这个引用所指向的对象还没有被创建,自然 in.close()也就不可能被执行,而且会报异常。我是这样想的,程序中 如果你先声明变量
InputStream(或者其他流类型) in = null;
然后执行其他语句,再 in = new 、、、、
在in new之前其他语句出exception,这时流没有被打开,也就无需关闭,如果不判断if(null != in) 硬要关闭in就出exception

另外你的代码按如下写会更合理:

if(null != in){
try{
in.flush();
in.close();
in = null;
}
catch(IOExection e){};
}
随性亻
推荐于2017-09-28 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:622万
展开全部
如果 in == null,就说明 in这个引用所指向的对象还没有被创建,自然 in.close()也就不可能被执行,而且会报异常。我是这样想的,程序中 如果你先声明变量
InputStream(或者其他流类型) in = null;
然后执行其他语句,再 in = new 、、、、
在in new之前其他语句出exception,这时流没有被打开,也就无需关闭,如果不判断if(null != in) 硬要关闭in就出exception

另外你的代码按如下写会更合理:

if(null != in){
try{
in.flush();
in.close();
in = null;
}
catch(IOExection e){};
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大时代暑
2010-08-17 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4111
采纳率:0%
帮助的人:4795万
展开全部
in=null时的意思就是说流还没有被初始化时就报异常了,此时流为空值。对于空值的流是不能关闭的,否则会出空指针异常。所以之前要判断一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以拟开7956
2010-08-10 · TA获得超过209个赞
知道答主
回答量:117
采纳率:0%
帮助的人:126万
展开全部
调用流的close();方法关闭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
helen321996
2010-08-10 · TA获得超过1377个赞
知道大有可为答主
回答量:2118
采纳率:0%
帮助的人:1179万
展开全部
有 相关方法关闭 如:FileOutputStream out = new FileOutputStream
操作完成后 out.close
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式