当前位置: 代码迷 >> J2SE >> PrintStream的close()需要关闭吗?解决方法
  详细解决方案

PrintStream的close()需要关闭吗?解决方法

热度:57   发布时间:2016-04-23 20:06:26.0
PrintStream的close()需要关闭吗?
不关闭会有有影响吗?
------解决思路----------------------
要关。
属于资源泄漏,有可能导致句柄数占用太多,系统无法再创建句柄。
------解决思路----------------------
引用:
不关闭会有有影响吗?

如果是由你打开的,应该由你关闭
------解决思路----------------------
需要关闭,而且要在finally{} 里面关闭
------解决思路----------------------
要关的,一般PrintStream用来调试个程序还可以,不建议用作其他用途,它 永远不会抛出 IOException。(Unlike other output streams, a PrintStream never throws an IOException;)
------解决思路----------------------
这个java虚拟机创建的,同时是静态的,调用多少次Sytem.out.println() 也不会增加句柄,都是调用一个句柄。虚拟机关闭也会关闭这个句柄。
引用:
Quote: 引用:

要关。
属于资源泄漏,有可能导致句柄数占用太多,系统无法再创建句柄。

Sytem.out.println() 之后通常也没有调用System.out.close()

------解决思路----------------------
你自己定义的PrintStream是应该关闭的,因为通常你使用后就再也不会管它了;关于你的System.out这个流为什么不用关闭这个问题,
这个问题问得好,这个流是静态的,是为了方便而设置的,如果你用完以后关了,那么你以后再也不能使用System.out.println()这个功能了,你希望这样吗:
package csdn;

public class test {
public static void main(String[] args) {
System.out.println("关闭前");
System.out.close();
print();
System.out.println("关闭后");
}

public static void print() {
System.out.println("call print()");
}
}
  相关解决方案