网站首页 > 文章中心 > 其它

java代码导出压缩包_java导出压缩包包含多个excel

作者:小编 更新时间:2023-08-16 20:35:58 浏览量:382人看过

怎样用Java生成ZIP文件

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

java代码导出压缩包_java导出压缩包包含多个excel-图1

import org.apache.tools.zip.ZipEntry;

import org.apache.tools.zip.ZipOutputStream;

/**

* @project: Test

* @author chenssy

* @Description: 文件压缩工具类

* ? ? ? ? ? ? ? ? ? 将指定文件/文件夹压缩成zip、rar压缩文件

*/

java代码导出压缩包_java导出压缩包包含多个excel-图2

public class CompressedFileUtil {

?* 默认构造函数

?*/

public CompressedFileUtil(){

?

}

?* @desc 将源文件/文件夹生成指定格式的压缩文件,格式zip

?* @param resourePath 源文件/文件夹

?* @param targetPath ?目的压缩文件保存路径

?* @return void

?* @throws Exception

public void compressedFile(String resourcesPath,String targetPath) throws Exception{

? ? File resourcesFile = new File(resourcesPath); ? ? //源文件

? ? File targetFile = new File(targetPath); ? ? ? ? ? //目的

? ? //如果目的路径不存在,则新建

? ? if(!targetFile.exists()){ ?

? ? ? ? targetFile.mkdirs();

? ? }

? ? String targetName = resourcesFile.getName()+".zip"; ? //目的压缩文件名

? ? FileOutputStream outputStream = new FileOutputStream(targetPath+"\\"+targetName);

? ? ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(outputStream));

? ? createCompressedFile(out, resourcesFile, "");

? ? out.close();

?* @desc 生成压缩文件.

?* ? ? ? ? ? ? ? ? ?如果是文件夹,则使用递归,进行文件遍历、压缩

?* ? ? ? 如果是文件,直接压缩

?* @param out ?输出流

?* @param file ?目标文件

public void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{

? ? //如果当前的是文件夹,则进行进一步处理

? ? if(file.isDirectory()){

? ? ? ? //得到文件列表信息

? ? ? ? File[] files = file.listFiles();

? ? ? ? //将文件夹添加到下一级打包目录

? ? ? ? out.putNextEntry(new ZipEntry(dir+"/"));

? ? ?

? ? ? ? dir = dir.length() == 0 ? "" : dir +"/";

? ? ? ? //循环将文件夹中的文件打包

? ? ? ? for(int i = 0 ; i files.length ; i++){

? ? ? ? ? ? createCompressedFile(out, files[i], dir + files[i].getName()); ? ? ? ? //递归处理

? ? ? ? }

? ? else{ ? //当前的是文件,打包处理

? ? ? ? //文件输入流

? ? ? ? FileInputStream fis = new FileInputStream(file);

? ? ? ? out.putNextEntry(new ZipEntry(dir));

? ? ? ? //进行写操作

? ? ? ? int j = ?0;

? ? ? ? while((j = fis.read(buffer)) 0){

? ? ? ? ? ? out.write(buffer,0,j);

? ? ? ? //关闭输入流

? ? ? ? fis.close();

public static void main(String[] args){

? ? CompressedFileUtil compressedFileUtil = new CompressedFileUtil();

? ? try {

? ? ? ? compressedFileUtil.compressedFile("G:\\zip", "F:\\zip");

? ? ? ? System.out.println("压缩文件已经生成...");

? ? } catch (Exception e) {

? ? ? ? System.out.println("压缩文件生成失败...");

? ? ? ? e.printStackTrace();

运行程序结果如下:

压缩之前的文件目录结构:

如果是使用java.util下的java.util.zip进行打包处理,可能会出现中文乱码问题,这是因为java的zip方法不支持编码格式的更改,我们可以使用ant.java下的zip工具类来进行打包处理.所以需要将ant.jar导入项目的lib目录下.

用eclipse写好java后导出文件是压缩文件怎么办

导出Runnabled Jar File,选择你要运行的主java类(含有main方法的java类).导出jar包就可以运行,没有Runnabled Jar File,右键项目导出jar也可以,之间有一步是选择Main class,选择你的那个要运行的java类(含有main 方法)导出的jar包就可以运行

如何使用JAVA代码压缩PDF文件

用java代码压缩应用到程序了,代码一般是比较复杂的,对pdf文件的mate标签优化,这类标签包括三类,pdf文件不是网页就是个文件,何况我们可以用pdf压缩工具压缩,下面有个解决方法,楼主可以做参照.

java代码实现 导出zip包,无法打开zip压缩包

package com.lch.test;

import java.util.Enumeration;

import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

public class ZIP {

public static void main(String[] argv) throws Exception {

for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {

String zipEntryName = ((ZipEntry) entries.nextElement()).getName();

System.out.println(zipEntryName);

用javad 的ZipFile类的ZipEntry方法试一下 找到ZIP里面的ZipEntry方法 读取Zip里面压缩文件的内容

有可能会引用外包

土嘎嘎的粉丝们大家好,我不知道你说的dzp是什么格式文件,但如果是zip的压缩文件,可以看下我的这段代码

ZipFile file = new ZipFile("d:\\1.zip");

ZipEntry entry = file.getEntry("1.xml"); //假如压缩包里的文件名是1.xml

InputStream in=file.getInputStream(entry);

最后就是按照java中一贯的流的处理方式即可

可以不解压,zip包里的一个对象就是一个ZipEntry

找到你想要的那个ZipEntry,用文流写出来就可以了.追问通过ZipEntry,然后用流就可以读出里面的内容了吗?谢谢指点!

回答/**

* 解压

* @param root 输出目标

* @param zipfile zip文件

protected void unzip(File root, File zipfile, String file) throws Exception {

// 解压文件不存在时返回

if (!zipfile.exists()) {

return;

// 释放目录不存时创建

if (!root.exists()) {

root.mkdirs();

// 释放目录不为目录时返回

if (!root.isDirectory()) {

FileInputStream fin = new FileInputStream(zipfile);

ZipInputStream zin = new ZipInputStream(fin);

ZipEntry entry = null;

while ((entry = zin.getNextEntry()) != null) {

//if (!entry.getName().endsWith(file)) {

//continue;

//}

File tmp = new File(root, entry.getName());

if (entry.isDirectory()) {

tmp.mkdirs();

} else {

int len = 0;

tmp.getParentFile().mkdirs();

FileOutputStream fout = new FileOutputStream(tmp);

while ((len = zin.read(buff)) != -1) {

fout.write(buff, 0, len);

zin.closeEntry();

fout.close();

这里完整的解压代码.

这段打开就是只解出一个你指定的文件.

下面是测试用的.

public static void main(String[] args) throws Exception {

new CommonFiles().unzip(new File("D:\\"), new File("D:\\test.zip"),"file.txt");

这个例子会在D盘生成型个test文件夹,file.txt就会在里面,(里面也可能会有多个文件夹,这个取决于压缩包里文件的度)

如何用JAVA把内存里的二进制文件打包成ZIP包

Java代码

import java.util.zip.ZipInputStream;

import java.util.zip.ZipOutputStream;

class ZipTest {

// 压缩

public static void zip(String zipFileName, String inputFile)

throws Exception {

File f = new File(inputFile);

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(

java代码导出压缩包_java导出压缩包包含多个excel-图3

zipFileName));

zip(out, f, f.getName());

System.out.println("zip done");

out.close();

private static void zip(ZipOutputStream out, File f, String base)

out.putNextEntry(new ZipEntry(base));

FileInputStream in = new FileInputStream(f);

int b;

while ((b = in.read()) != -1)

out.write(b);

in.close();

public static void main(String[] args) {

try {

ZipTest t = new ZipTest();

t.zip("c:\\test.zip", "c:\\1.txt");

} catch (Exception e) {

e.printStackTrace(System.out);

以上就是土嘎嘎小编为大家整理的java代码导出压缩包相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章