java 中对输入输出流类型重复调用,只对最后一次调用进行关闭,之前的调用不关闭,会有什么后果?

比如:一个类里面定义一个全局变量publicstaticInputStreamin=null;类的方法A,直接使用in=con.getInputStream();类的方法... 比如:
一个类里面定义一个全局变量public static InputStream in = null;
类的方法A,直接使用in = con.getInputStream();
类的方法B,使用in = con.getInputStream();
类的方法C,里面也用到in ,他的值是从B返回来的
大概就是这样的
1、主要是我想把方法区分开来,比如一个方法A是专门获取in的作为return的值,然后返回给另一个方法B,在这个方法里面使用,如果A关闭了,那传给B的in就已经关闭了,取不到数据
2、 bianqiwei的说法是定义全局变量,那如果方法A的in返回给B之后,in进行操作后可以不关闭然后重新进行赋值吗?
展开
 我来答
sb55154634
2010-09-06 · TA获得超过150个赞
知道小有建树答主
回答量:172
采纳率:100%
帮助的人:158万
展开全部
不是很理解 随便说说
你当然可以不关闭 之所以用完就关闭 是防止占用连接资源以及连接冲突 有些连接你不关闭的话 其他地方就不能使用了 并不是一定需要关闭 有些时候为了重用 是特意不关闭的 比如说数据库连接池 他就是打开指定数目的数据连接 不关闭 程序需要使用数据库连接了从连接池获取 连接池负责管理连接 比如说保证给程序的是一个可用连接等等
一般情况下上层流关闭的同时也会将下层流关闭 比如说你在InputStream上套一个缓冲流 那么你将缓冲流关闭了 InputStream同时也会关闭的 你如果套了好几个的话 那么只要关闭一个 其他所有流都没办法使用了 因为它们作为基本的流已经关闭了
bianqiwei
2010-09-05 · TA获得超过171个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:63.7万
展开全部
很负责的告诉你,因为是一个实例,所以,只需要进行一次close,所以,没问题.
不过,用的时候最好这么用
public static InputStream in = null;
public static InputStream getIn(){
if(in == null){
//初始化in
}
return in;
}
public void test1(){
InputStream in = getIn();
in 执行操作
}
组后的方法 记得把 in.close()掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
focusheart
2010-09-04 · TA获得超过486个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:318万
展开全部
这个……你试试看?
一般都是用完了就关了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式