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(); } }