📅  最后修改于: 2023-12-03 15:01:32.836000             🧑  作者: Mango
Java ZipEntry中的getSize()方法用于获取文件或目录在压缩文件中的大小(以字节为单位)。该方法返回一个long类型的数据,如果该ZipEntry是一个目录,则返回0。
public long getSize()
以下示例演示如何使用getSize()方法:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipFile {
public static void main(String[] args) {
try {
// 创建ZipInputStream对象
ZipInputStream zis = new ZipInputStream(new FileInputStream("example.zip"));
// 获取ZipEntry对象
ZipEntry entry = null;
while ((entry = zis.getNextEntry()) != null) {
// 打印文件名及文件在压缩文件中的大小
System.out.println("Name: " + entry.getName() + ", Size: " + entry.getSize());
// 创建输出流
FileOutputStream fos = new FileOutputStream(entry.getName());
byte[] buffer = new byte[1024];
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
zis.closeEntry();
}
// 关闭ZipInputStream对象
zis.closeEntry();
zis.close();
System.out.println("文件解压成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出:
Name: example.txt, Size: 29
Name: example_folder/, Size: 0
Name: example_folder/hello_world.txt, Size: 12
文件解压成功
在上面的示例中,我们使用ZipInputStream
类和ZipEntry
类来解压压缩文件,并打印出每个文件的名称和大小(如果是目录,则大小为0)。entry.getSize()
方法用于获取文件或目录在压缩文件中的大小。
注意: getsize()
方法在Java 7及其以前的版本中返回int类型数据。在Java 8及其以后的版本中,该方法返回long类型数据,以允许压缩文件的大小超过2 GB。