java如何使用压缩流直接生成压缩文件
java如何使用压缩流直接生成压缩文件,压缩文件解压后,里面包含一个excel文件,此excel文件也是由数据库中导出生成.现在的问题是用输出流生成excel文件没有问题,但是我想不在本地磁盘生成excel文件,而是将excel文件进行压缩保存到本地磁盘中(这样可以加快传输速度,并可以节省服务器的外存空间)
程序代码:/**
* 压缩文件或者目录
* @param baseDirName 压缩的根目录
* @param fileName 根目录下待压缩的文件或文件夹名,
* 星号*表示压缩根目录下的全部文件。
* @param targetFileName 目标ZIP文件
*/
public static void zipFile(String baseDirName, String fileName,
String targetFileName){
//检测根目录是否存在
if (baseDirName == null){
System.out.println("压缩失败,根目录不存在:" + baseDirName);
return;
}
File baseDir = new File(baseDirName);
if (!baseDir.exists() || (!baseDir.isDirectory())){
System.out.println("压缩失败,根目录不存在:" + baseDirName);
return;
}
String baseDirPath = baseDir.getAbsolutePath();
//目标文件
File targetFile = new File(targetFileName);
try{
//创建一个zip输出流来压缩数据并写入到zip文件
ZipOutputStream out =new ZipOutputStream(
new FileOutputStream(targetFile));
if (fileName.equals("*")){
//将baseDir目录下的所有文件压缩到ZIP
CompressUtil.dirToZip(baseDirPath, baseDir, out);
} else {
File file = new File(baseDir, fileName);
if (file.isFile()){
CompressUtil.fileToZip(baseDirPath, file, out);
} else {
CompressUtil.dirToZip(baseDirPath, file, out);
}
}
out.close();
System.out.println("压缩文件成功,目标文件名:" + targetFileName);
} catch (IOException e){
System.out.println("压缩失败:" + e);
e.printStackTrace();
}
}






