Java尝试使用资源inputstream null检查

Java尝试使用资源inputstream null检查,java,inputstream,try-with-resources,Java,Inputstream,Try With Resources,有人能帮我试用java中的资源吗 try(InputStream inputStream = new FileInputStream(new File(some file))) { if(inputStream == null) //Line 3 { } } catch(IOException e) { } 我想知道,是否有必要在第3行检查null。在第3行是否存在inputStream可以为空的情况?给定您的代码,否: InputStream In

有人能帮我试用java中的资源吗

try(InputStream inputStream = new FileInputStream(new File(some file)))
{
     if(inputStream == null)       //Line 3
     {
      }
}
catch(IOException e)
{
}
我想知道,是否有必要在第3行检查null。在第3行是否存在inputStream可以为空的情况?

给定您的代码,否:

InputStream InputStream=new FileInputStream(新文件(某些文件))
将在
try
块的内容之前执行。要么它将成功,因此
inputStream
将不为
null
,要么它将失败,在过程中引发异常,因此
try
块的内容将永远不会执行

我想知道,是否有必要在第3行检查null

不可以。只要保留表达式
newfileinputstream(newfile(“path/to/File”))
,结果将是
FileInputStream
的非空对象。第3行的检查是不必要的

在第3行是否存在inputStream可以为null的情况

对。如果将任何返回
null
的表达式赋给
inputStream
。这并不实际,因为除了在null上检查流之外,您不能对流执行任何操作。在这种情况下,第3行的支票可能会派上用场

比如说,

try (InputStream s = null) {}
catch (IOException e) {}

不是在这种情况下,而是在@takendarkk中,如果inputstream为null,执行是否会到达第3行,或者它将从try-catch中逃逸而不发生任何错误?不确定。您只需将变量设置为null并运行它即可查看。
newanything()
永远不会为null。@社区,重新打开,
newfileinputstream
永远不会返回
null