在Java中,先实例化ZipOutputStream还是先实例化BufferedOutputStream
无关紧要?例:
FileOutputStream dest = new FileOutputStream(file);
ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(dest));
// use zip output stream to write to
要么:
FileOutputStream dest = new FileOutputStream(file);
BufferedOutputStream out = new BufferedOutputStream(new ZipOutputStream(dest));
// use buffered stream to write to
在我不科学的时光里,我似乎并没有说出太多区别。我在Java
API中看不到任何说明这些方法之一是必需的还是首选的信息。有什么建议吗?似乎先压缩输出,然后将其缓冲以进行写操作会更有效。
你应该总是包裹BufferedOutputStream
用ZipOutputStream
,绝不是相反。请参见以下代码:
FileOutputStream fos = new FileOutputStream("hello-world.zip");
BufferedOutputStream bos = new BufferedOutputStream(fos);
ZipOutputStream zos = new ZipOutputStream(bos);
try {
for (int i = 0; i < 10; i++) {
// not available on BufferedOutputStream
zos.putNextEntry(new ZipEntry("hello-world." + i + ".txt"));
zos.write("Hello World!".getBytes());
// not available on BufferedOutputStream
zos.closeEntry();
}
}
finally {
zos.close();
}
如评论所述,putNextEntry()
和closeEntry()
方法在上不可用BufferedOutputStream
。不调用这些方法ZipOutputStream
将引发异常java.util.zip.ZipException: no current ZIP entry
。
为了完整起见,值得注意的是,最后子句只要求close()
对ZipOutputStream
。这是因为按照惯例,所有内置Java输出流包装器实现都传播关闭。
我只是反过来测试了它。事实证明,将ZipOutputStream
with
包裹起来BufferedOutputStream
,然后仅调用write()
它(不创建/关闭条目)不会抛出ZipException
。而是生成的ZIP文件将被破坏,其中没有任何条目。
问题内容: 我有2种方法可以创建using 。 要么: 要么: 除了可重用性之外,使用第二种方式的缺点是什么? 问题答案: 第一种选择使您更具灵活性: 当然会覆盖内容,而不会覆盖,但是我想这不是您的问题。 在属性名称周围加上引号会使它与较不灵活的浏览器更加兼容。
我编写了以下两种加密和解密给定令牌的方法:
问题内容: 嗨, 这是从JComboBox作为字符串获取值的正确方法,以及为什么它是正确的方法。谢谢。 要么 问题答案: 如果仅在JComboBox中放置(非空)引用,则两种方法都可以。 但是,第一种解决方案还允许将来进行修改,您可以在组合框中插入s,s,s等作为项目。 为了对值保持鲁棒性(仍然不强制转换),您可以考虑第三个选择:
问题内容: 两个 和 不通过将数据在内存中的数组缓冲。所以我的问题是 两者之间有什么区别。 何时使用以及何时使用 当我对此感到困惑时,有人可以帮我解决上述两个问题吗? 问题答案: 只要看一下javadoc: ByteArrayOutputStream: 此类实现输出流,在该流中,数据被写入字节数组。 BufferedOutputStream: 该类实现缓冲的输出流。通过设置这样的输出流,应用程序可
本文向大家介绍Java中的BufferedInputStream与BufferedOutputStream使用示例,包括了Java中的BufferedInputStream与BufferedOutputStream使用示例的使用技巧和注意事项,需要的朋友参考一下 BufferedInputStream BufferedInputStream 是缓冲输入流。它继承于FilterInputStrea
主要内容:1 什么是Java BufferedOutputStream,2 Java BufferedOutputStream的语法,3 Java BufferedOutputStream的构造方法,4 Java BufferedOutputStream的方法,5 Java BufferedOutputStream的例子1 什么是Java BufferedOutputStream Java BufferedOutputStream 类用于缓冲输出流。它在内部使用缓冲区存储数据。与将数据直接写入流