import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class FileCompressor {
/**
* 压缩单个文件到指定的ZIP文件中。
*
* @param srcFile 要压缩的源文件路径
* @param zipFile 压缩后的ZIP文件路径
*/
public static void compressFileToZip(String srcFile, String zipFile) {
try (FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos)) {
File file = new File(srcFile);
if (!file.exists()) {
System.out.println("文件不存在: " + srcFile);
return;
}
// 创建Zip条目
ZipEntry zipEntry = new ZipEntry(file.getName());
zos.putNextEntry(zipEntry);
// 将文件内容写入ZIP流中
try (FileInputStream fis = new FileInputStream(file)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) >= 0) {
zos.write(buffer, 0, length);
}
}
zos.closeEntry();
System.out.println("文件已成功压缩: " + zipFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 示例:将一个文本文件压缩为ZIP文件
compressFileToZip("example.txt", "example.zip");
}
}
java.io.*
和java.util.zip.*
包来处理文件输入输出和压缩操作。zos.putNextEntry()
方法将这个条目添加到ZIP输出流中。FileInputStream
读取源文件,并通过一个1024字节的缓冲区将数据写入ZIP输出流中。try-with-resources
语法确保所有打开的资源在使用完毕后自动关闭,避免资源泄漏。compressFileToZip
方法将一个文本文件压缩为ZIP文件。如果你有任何问题或需要进一步的帮助,请告诉我!
上一篇:linux 查看java版本
下一篇:java 跳出循环
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站