ZipOutputStream获取文件大小
时间: 2023-08-25 10:06:07 浏览: 370
回答: 要获取ZipOutputStream中压缩文件的大小,可以通过使用ZipEntry的getSize()方法来实现。ZipEntry是ZipOutputStream中的文件条目,可以比作外面系统的File类似。getSize()方法返回的是该文件条目的未压缩大小,单位为字节。通过遍历ZipOutputStream中的所有ZipEntry,累加每个文件条目的getSize()值,即可得到整个压缩文件的大小。
#### 引用[.reference_title]
- *1* *2* [java使用ZipOutputStream对文件进行压缩](https://blog.csdn.net/qq_40693171/article/details/89406706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
ZipOutputStream获取压缩文件大小
ZipOutputStream获取压缩文件大小的方法是通过调用ZipEntry的getSize()方法来获取每个文件条目的大小,然后将所有文件条目的大小相加即可得到整个压缩文件的大小。\[2\]
#### 引用[.reference_title]
- *1* *2* [java使用ZipOutputStream对文件进行压缩](https://blog.csdn.net/qq_40693171/article/details/89406706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
如何在Java中生成ZIP文件后获取并判断其大小?
在Java中,你可以使用`java.util.zip`包下的`ZipOutputStream`来生成ZIP文件,`FileInputStream`或`FileOutputStream`来读取文件内容,并使用`Files.size()`函数来计算文件大小。以下是生成ZIP文件并获取其大小的基本步骤:
1. 创建一个`ZipOutputStream`实例,指定输出流(例如到硬盘上的文件):
```java
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public void zipFiles(String archiveName) {
try (FileOutputStream fos = new FileOutputStream(archiveName);
ZipOutputStream zos = new ZipOutputStream(fos)) {
// 添加文件到ZIP
addFileToZip(zos, "file1.txt", "file1.txt");
addFileToZip(zos, "file2.jpg", "file2.jpg");
// 关闭流以完成压缩
zos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private void addFileToZip(ZipOutputStream zos, String sourcePath, String entryName)
throws Exception {
FileInputStream fis = new FileInputStream(sourcePath);
ZipEntry entry = new ZipEntry(entryName);
zos.putNextEntry(entry);
byte[] buffer = new byte[4096];
int length;
while ((length = fis.read(buffer)) != -1) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
fis.close();
}
```
2. 生成完成后,你可以打开ZIP文件,使用`FileInputStream`读取它,然后使用`Files.size()`计算总大小:
```java
long fileSize = 0;
try (FileInputStream fis = new FileInputStream(archiveName)) {
fileSize = Files.size(Paths.get(archiveName));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("The ZIP file size is: " + fileSize + " bytes.");
```
阅读全文
相关推荐














