你认为这段代码正确地关闭了输出流入口吗?知道这不是同一类型的输出流。
OutputStream out = new JarOutputStream(new FileInputstrem(fileName));
...
((ZipOutputStream)out).closeEntry();
但考虑到两者都是输出流,我认为它们以相同的方式关闭。因此在我的例子中 ((ZipOutputStream)out).closeEntry();
与 ((JarOutputStream)out).closeEntry();
如果你认为是真的,你能确认一下吗?如果错了,你能纠正我吗? 谢谢。
最佳答案
如果您需要在 out
变量上调用特定于 ZipOutputStream
的方法,那么它的类型不应该是 OutputStream
,而是 ZipOutputStream
:
ZipOutputStream out = new JarOutputStream(new FileInputstrem(fileName));
...
out.closeEntry();
这不会造成任何问题,因为自从 JarOutputStream
扩展了 ZipOutputStream
,一个 JarOutputStream
也是一个 ZipOutputStream
(也是一个 OutputStream
,也是一个 Object
)。
关于java - 关闭特定输出流的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645534/