gpt4 book ai didi

java - 如何声明和关闭InputStream?

转载 作者:搜寻专家 更新时间:2023-11-01 01:06:45 27 4
gpt4 key购买 nike

以下哪项是关闭和声明 inputStream 的首选方式。

InputStream is = null; 
String md5;
try{
is = new FileInputStream(FILE.getAbsoluteFile());
md5 = UTILS.getMD5Info(is);
} finally{
if(is != null)
is.close();
}

InputStream is = new FileInputStream(FILE.getAbsoluteFile()); 
String md5;
try{
md5 = UTILS.getMD5Info(is);
} finally{
is.close();
}

我看不出两者有什么区别,但第二种方式看起来更好,因为它有点短。如果我们不打算捕获异常并且只对垃圾收集 inputStream 感兴趣,那么在 try block 中初始化输入流是否有用?

最佳答案

如果 IOException 在 try 和 finally 之间被捕获,第一个也会处理 FileInputStream 的构造函数抛出 IOException 的情况,而第二个则不会。他们不会做同样的事情。事实上,第二个更干净。

从 Java 7 开始,最好的方法是使用 try-with-resources 语句:

try (InputStream is = new FileInputStream(FILE.getAbsoluteFile())) {
md5 = UTILS.getMD5Info(is);
}

关于java - 如何声明和关闭InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com