给定ZipFile zip,其ZipEntry条目和目标File unzippedEntryFile,写入unzippedEntryFile的条目最可读的方式是什么?
我想出了使用Google Guava和Apache.Commons.IO的以下解决方案:
InputSupplierIoUtils.toByteArray(zip.getInputStream(entry)));
Files.copy(entryInputSupplier,unzippedEntryFile);
但是,有些东西告诉我它可以变得更简单.
谢谢,
康拉德
最佳答案
除了你有很多嵌套调用之外,我不知道你的代码有什么不可读性.这些可以分解并分配给局部变量,这将使代码更长(但在我看来,更具可读性).
原文链接:https://www.f2er.com/java/438223.html您似乎正在处理数据两次 – 一次将其读入字节数组并再次将其复制到文件中.我没有对此进行测试,但它应该可以工作并将数据量减少一半:
final InputStream zipStream = zip.getInputStream(entry);
InputSupplier
实际上,您可以创建自己的实现InputSuppler< InputStream>的小类.我很惊讶我在番石榴图书馆里找不到一个. (显然,others have been surprised at this as well.)