java压缩成zip

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;


/**java压缩成zip
 * @author YYQ
 * 创建时间:2015年1月14日
 */
public class FileZip {


/**
* @param inputFileName 你要压缩的文件夹(整个完整路径)
* @param zipFileName 压缩后的文件(整个完整路径)
* @throws Exception
*/
public static Boolean zip(String inputFileName, String zipFileName) throws Exception {
zip(zipFileName, new File(inputFileName));
return true;
}


private static void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
out.flush();
out.close();
}


private static void zip(ZipOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
out.putNextEntry(new ZipEntry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getName());
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
//System.out.println(base);
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}

public static void main(String [] temp){       
try {           
zip("D:\\java","E:\\test.zip");//你要压缩的文件夹      和  压缩后的文件 
}catch (Exception ex) {       
ex.printStackTrace();    
}   
}
}
### Java实现文件压缩zip格式的方法 在Java中,可以使用`java.util.zip`包中的类来实现文件的压缩功能。以下是完整的代码示例以及相关说明: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class FileToZip { public static void compressFile(String srcFile, String zipFile) { try (FileInputStream fis = new FileInputStream(srcFile); FileOutputStream fos = new FileOutputStream(zipFile); ZipOutputStream zos = new ZipOutputStream(fos)) { ZipEntry zipEntry = new ZipEntry(srcFile.substring(srcFile.lastIndexOf("/") + 1)); // 获取文件名 zos.putNextEntry(zipEntry); byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer)) >= 0) { zos.write(buffer, 0, length); // 将数据写入ZIP文件 } zos.closeEntry(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String sourceFile = "example.txt"; // 源文件路径 String zipFilePath = "example.zip"; // 压缩后的文件路径 compressFile(sourceFile, zipFilePath); System.out.println("文件已成功压缩!"); } } ``` 上述代码实现了将单个文件压缩ZIP格式的功能[^1]。其中: - `FileInputStream`用于读取源文件。 - `FileOutputStream`用于创建或覆盖目标ZIP文件。 - `ZipOutputStream`负责将文件内容写入ZIP格式。 - `ZipEntry`定义了ZIP条目(即压缩后的文件名)。 如果需要压缩整个目录下的所有文件,可以递归遍历目录并逐一添加到ZIP文件中[^2]。 #### 注意事项 - 确保源文件路径和目标ZIP文件路径正确无误。 - 如果处理大文件,可能需要优化缓冲区大小以提高性能。 - 在实际应用中,建议对异常进行更详细的处理,例如记录日志或提示用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值