有一个FileInputStream,我想知道我是否需要关闭它?如果是,如果我将此流对象传递给另一个方法,我可以关闭该子方法吗?
答案 0 :(得分:2)
是的,您可以在传递它的方法中关闭流。
但要注意。如果在方法调用后使用相同的流,它将保持关闭状态。
最佳做法是在完成所有操作后关闭流。
答案 1 :(得分:2)
是 - 如果您确定不会再将任何内容写入流中。
不 - 例如在Servlet中使用outputStream - 你得到这个流,写入它们但你不关闭它。这是因为以后可以访问相同的流。主要规则是:始终关闭您自己打开的溪流
答案 2 :(得分:1)
是的,你应该关闭它,你可以关闭它,如果你把它传递给一个子方法。如果你将它传递给Reader,如果你在Reader上调用close,它也会关闭流。
答案 3 :(得分:1)
您可以随意关闭流。但是您应该关闭打开它的流,以提高可读性。您仍然可以使用其他方法处理流:
try {
InputStream stream = //open the stream;
PerformActionOnStream(s);
} catch (IOException e) {
//handle error
} finally {
stream.close();
}
没有理由关闭PerformActionOnStream()
中的信息流。完成后再回来。
在java 7
中更好地简单
try(InputStream stream = new MyStream()) {
// code
} catch (Exception e) {
//
}
答案 4 :(得分:0)
您应始终关闭流以释放操作系统上的开放资源。打开流总是会返回一个标识符,您可以使用该标识符在代码中的任何位置关闭它(只要标识符有效),无论是来自其他方法还是类。