Java Properties.load是否会关闭InputStream?

Java Properties.load是否会关闭InputStream?,java,properties,inputstream,java-io,Java,Properties,Inputstream,Java Io,我看到了,但没有看到在InputStream上调用的close()方法,prop.load()会自动关闭流吗?或者示例中是否存在错误?在Properties.load()之后流未关闭 上面的代码返回“-1”,因此流没有关闭。否则它应该抛出java.io.IOException:streamclosed的javadoc什么时候这么说 此方法返回后,指定的流保持打开状态 从Java6开始就有人这样说 正如EJP在a中所说:不要依赖任意的互联网垃圾。使用Oracle Java官方文档作为主要信息源。如

我看到了,但没有看到在
InputStream
上调用的
close()
方法,
prop.load()
会自动关闭流吗?或者示例中是否存在错误?

在Properties.load()之后流未关闭


上面的代码返回“-1”,因此流没有关闭。否则它应该抛出
java.io.IOException:streamclosed

的javadoc什么时候这么说

此方法返回后,指定的流保持打开状态

从Java6开始就有人这样说


正如EJP在a中所说:不要依赖任意的互联网垃圾。使用Oracle Java官方文档作为主要信息源。

如果您使用的是Java 7或更高版本,您可以使用try with参考资料。甲骨文在这里的文章:

在try块打开中声明的任何资源都将关闭。因此,新构造使您不必将try块与专用于适当资源管理的相应finally块配对

以下操作将自动关闭InputStream(如果需要,您可以添加catch和finally):


我刚刚检查了java代码的load(stream),但它没有关闭示例中的stream.Bug
Properties.load()
不会关闭流。你必须这么做。质量很差的例子。它甚至不能在某些操作系统上工作。不要依赖任意的网络垃圾。使用Oracle Java教程。
public static void main(String[] args) throws IOException {

    InputStream in = new FileInputStream(new File("abc.properties"));

    new Properties().load(in);

    System.out.println(in.read());
}
try (InputStream is = new FileInputStream("properties.txt")) {
    // is will be closed automatically
}