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进行操作后可以不关闭然后重新进行赋值吗? 展开
一个类里面定义一个全局变量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进行操作后可以不关闭然后重新进行赋值吗? 展开
展开全部
不是很理解 随便说说
你当然可以不关闭 之所以用完就关闭 是防止占用连接资源以及连接冲突 有些连接你不关闭的话 其他地方就不能使用了 并不是一定需要关闭 有些时候为了重用 是特意不关闭的 比如说数据库连接池 他就是打开指定数目的数据连接 不关闭 程序需要使用数据库连接了从连接池获取 连接池负责管理连接 比如说保证给程序的是一个可用连接等等
一般情况下上层流关闭的同时也会将下层流关闭 比如说你在InputStream上套一个缓冲流 那么你将缓冲流关闭了 InputStream同时也会关闭的 你如果套了好几个的话 那么只要关闭一个 其他所有流都没办法使用了 因为它们作为基本的流已经关闭了
你当然可以不关闭 之所以用完就关闭 是防止占用连接资源以及连接冲突 有些连接你不关闭的话 其他地方就不能使用了 并不是一定需要关闭 有些时候为了重用 是特意不关闭的 比如说数据库连接池 他就是打开指定数目的数据连接 不关闭 程序需要使用数据库连接了从连接池获取 连接池负责管理连接 比如说保证给程序的是一个可用连接等等
一般情况下上层流关闭的同时也会将下层流关闭 比如说你在InputStream上套一个缓冲流 那么你将缓冲流关闭了 InputStream同时也会关闭的 你如果套了好几个的话 那么只要关闭一个 其他所有流都没办法使用了 因为它们作为基本的流已经关闭了
展开全部
很负责的告诉你,因为是一个实例,所以,只需要进行一次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()掉
不过,用的时候最好这么用
public static InputStream in = null;
public static InputStream getIn(){
if(in == null){
//初始化in
}
return in;
}
public void test1(){
InputStream in = getIn();
in 执行操作
}
组后的方法 记得把 in.close()掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个……你试试看?
一般都是用完了就关了吧
一般都是用完了就关了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询