对流关闭的一点认识

1.创建的流一定要有引用,便于回收.比如通过某个方法得到的流如果直接当成参数传递了就不能关闭了;
 比如f()函数返回InputStream,而 f1(InputStream); 我们不能就f1(f()),这样流就不能关闭了.

 

 

2.使用流一定要连续使用,举个例子,InputStream in=f.getInputStream();很可能我们的这个方法得到的流已经关闭了,但是对象依然存在内存里面,这个时候如果我们再用in去做读写操作,就会报流关闭的错误了.

 

在举个更具体点的例子,在a类里面我们可能给b类设置了流,并且关闭了,在c类里面要用b类的流去读写,这个时候就出问题了,因为流已经关闭了,所以在c类想用流做的一些事情就直接在a类里面做了,在关闭流这样就不会出现问题了

 

 

第二点尤其要注意,于此类似的还有数据库的连接,socket,也是一样的道理,因为这些资源跟普通的java类是不一样的,内存和文件,内存和数据库它是有一根隐形的"带子"连在一起,而其他的类没有,自己的感悟而已,跟大家分享一下,如有错误,请多指点

你可能感兴趣的:(设计模式,多线程,应用服务器,socket,Mina)