Java 调用函数ZipEntry.getSize时,库是否首先解压缩内存中的文件?
在解压之前,我想检查未来解压文件的大小。有人能确认库不是从解压内存中的文件开始得到最终解压大小的吗 我的代码:Java 调用函数ZipEntry.getSize时,库是否首先解压缩内存中的文件?,java,zip,zipfile,Java,Zip,Zipfile,在解压之前,我想检查未来解压文件的大小。有人能确认库不是从解压内存中的文件开始得到最终解压大小的吗 我的代码: import java.io.*; import java.util.Enumeration; import java.util.zip.ZipFile; import java.util.zip.ZipEntry; public class ZipGetMethod { public static void main(String[] args) { String fi
import java.io.*;
import java.util.Enumeration;
import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;
public class ZipGetMethod {
public static void main(String[] args) {
String file = "file.zip";
try {
ZipFile zipfile = new ZipFile(file);
Enumeration e = zipfile.entries();
while (e.hasMoreElements()) {
ZipEntry zipentry = (ZipEntry) e.nextElement();
String entryName = zipentry.getName();
Date lastModify = new Date(zipentry.getTime());
long uncomSize = zipentry.getSize();
long comSize = zipentry.getCompressedSize();
} catch (IOException ex) {
System.out.println("IOException is : " + ex);
}
}
}
否。每个文件的未压缩大小存储在Zip索引中,因此无需解压缩即可找到给定文件的未压缩大小。否。每个文件的未压缩大小存储在Zip索引中,因此,查找给定文件的未压缩大小不需要解压缩。否。每个文件的未压缩大小存储在Zip索引中,因此查找给定文件的未压缩大小不需要解压缩。否。每个文件的未压缩大小存储在Zip索引中,因此,无需解压缩即可找到给定文件的未压缩大小。ZIP格式将未压缩文件大小存储为中心目录()的一部分,无需处理实际压缩数据以确定文件大小 现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)
快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小
现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)
快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小
现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)
快速查看OpenJDK实现()表明Zippentry加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,而不需要进一步检查压缩数据。ZIP格式将未压缩的文件大小存储为中心目录()的一部分,不需要处理实际的压缩数据来确定文件大小
现在,关于您正在使用的Java实现,这取决于平台,但它很可能不会处理文件数据或本地头,并且会引用中心目录(如果zip文件已附加数据,则会引用各种中心目录)
快速查看OpenJDK实现()表明ZipEntry中加载了来自ZIP目录的文件大小数据,
getSize()
只返回该值,无需进一步检查压缩数据。添加了关于OpenJDK实现的最后一段。一个好的答案通过引用实际的源代码变得非常好。添加了关于OpenJDK实现的最后一段。一个好的答案通过引用实际的源代码变得非常好。添加了关于OpenJDK实现。一个很好的答案通过引用实际的源代码变得很好。添加了关于OpenJDK实现的最后一段。一个很好的答案通过引用实际的源代码变得很好。