精华内容
下载资源
问答
  • java 生成zip压缩文件

    热门讨论 2010-06-21 08:51:27
    java 生成zip压缩文件 java 生成zip压缩文件
  • 生成压缩文件jar

    2012-03-01 14:47:16
    生成压缩文件, 提供源文件,目标文件路径及名称,同时设置压缩密码。
  • POI导出多Excel文件,生成压缩文件

    千次阅读 2018-01-15 10:51:38
    众所周知,每Excel文件最多可以存储255sheet。当需要导出的sheet数超过255时,比较好的办法是Excel文件压缩成.zip文件再导出 步骤:1 需要导出的... 3 Excel文件生成压缩文件导出 package com.

    众所周知,每个Excel文件最多可以存储255个sheet。当需要导出的sheet数超过255个时,比较好的办法是将多个Excel文件压缩成.zip文件再导出

    步骤:1 将需要导出的表封装到listBean中 

              2 将list中表每隔255个sheet导出到一个Excel文件  

              3 将Excel文件生成压缩文件导出

    package com.mobile.main;
    
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    
    import javax.ws.rs.Consumes;
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import javax.ws.rs.QueryParam;
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.Response;
    import javax.ws.rs.core.Response.ResponseBuilder;
    
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.xssf.usermodel.XSSFCellStyle;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    public class ExportTable {
    
    	public String exportTable() {
    		//得到所有需要导出的表信息,一个表放在一个sheet中
    		List<ExportTableBean> exportTableBean = getTableBeanService.getAllTable();
    		//导出文件路径(这里也可以写成固定路径"D:/tmp")
    		String filePath = System.getProperty("catalina.base") + File.separator + "tmp";
    		//创建此路径
    		makeDirs(filePath);
    		//得到此路径下文件
    		File fileDir = new File(filePath);
    		File[] fileDirs = fileDir.listFiles();
    		//删除此目录下文件
    		for (int i = 0; i < fileDirs.length; i++) {
    			File tmp = fileDirs[i];
    			tmp.delete();
    		}
    		//导出Excel文件路径
    		String fullFilePath = "";
    		//导出压缩文件路径
    		String zipFilePath = "";
    		//保存文件名
    		String fileName = "";
    		FileOutputStream os = null;
    		//每个Excel文件中第一个sheet中的表对应list中的开始下标
    		int index = 0;
    		//Excel的个数-1,用来计算list开始下标
    		int count = 0;
    		try {
    			//如果表个数不超过254个,则导出Excel文件,否则导出压缩文件
    			if(null != exportTableBean && exportTableBean.size() > SheetNumber){
    				//计算需要导出的表个数,即sheet个数
    				int size = exportTableBean.size();
    				//用于存放生成的excel文件名称  
    				List<String> fileNames = new ArrayList<String>();
    				//导出压缩文件的全路径
    				zipFilePath = filePath + File.separator + "cwm_" + System.currentTimeMillis() + ".zip";
    				File zip = new File(zipFilePath);
    				while (size - SheetNumber > 0 || size > 0) {
    					fileName = "cwm_" + System.currentTimeMillis() + ".xlsx";
    					//导出excel的全路径
    					fullFilePath = filePath + File.separator + fileName;
    					fileNames.add(fullFilePath);
    					os = new FileOutputStream(fullFilePath);
    					index = count * SheetNumber;
    					//list中表依次导入excel文件
    					XSSFWorkbook wb = createColumnXSSF(exportTableBean,index);
    					// 写文件
    					wb.write(os);
    					count++;
    					size -= SheetNumber;
    				}
    				//将excel文件生成压缩文件
    				File srcfile[] = new File[fileNames.size()];  
    		        for (int j = 0, n1 = fileNames.size(); j < n1; j++) {  
    		            srcfile[j] = new File(fileNames.get(j));  
    		        }  
    		        ZipFiles(srcfile, zip);  
    			}else{
    				fileName = "cwm_" + System.currentTimeMillis() + ".xlsx";
    				zipFilePath = filePath + File.separator + fileName;
    				os = new FileOutputStream(zipFilePath);
    				//list中表依次导入excel文件
    				XSSFWorkbook wb = createColumnXSSF(exportTableBean,0);
    				// 写文件
    				wb.write(os);
    			}
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			// 关闭输出流
    			if(null != os){
    				try {
    					os.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		return zipFilePath;
    	}
    	
    	
    	 //压缩文件  
        public void ZipFiles(File[] srcfile, File zipfile) {  
            byte[] buf = new byte[1024];  
            try {  
                ZipOutputStream out = new ZipOutputStream(new FileOutputStream(  
                        zipfile));  
                for (int i = 0; i < srcfile.length; i++) {  
                    FileInputStream in = new FileInputStream(srcfile[i]);  
                    out.putNextEntry(new ZipEntry(srcfile[i].getName()));  
                    int len;  
                    while ((len = in.read(buf)) > 0) {  
                        out.write(buf, 0, len);  
                    }  
                    out.closeEntry();  
                    in.close();  
                }  
                out.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        } 
        
            /**
    	 * 创建目标路径中文件夹
    	 * @param folderName
    	 * @return
    	 */
    	public static boolean makeDirs(String folderName) {
    		if (folderName == null || folderName.isEmpty()) {
    			return false;
    		}
    		File folder = new File(folderName);
    		return (folder.exists() && folder.isDirectory()) ? true : folder.mkdirs();
    	}
    	
    	/**
    	 * 将表信息写入Excel
    	 * @param sheet
    	 * @param metadataList
    	 * @return
    	 */
    	public XSSFWorkbook createColumnXSSF(List<ExportTableBean> exportTableBeanList,int start) {
    		//创建workbook
    		XSSFWorkbook workbook = new XSSFWorkbook();
    		//创建样式
    		XSSFCellStyle cellStyle =workbook.createCellStyle();
    		cellStyle.setWrapText(true);//自动换行
    		XSSFSheet sheet_first = workbook.createSheet("说明");// 第一个表不填
    		// 合并单元格(开始行,结束行,开始列,结束列)
    		sheet_first.addMergedRegion(new CellRangeAddress(0, 2, 0, 4));
    		Cell cell = sheet_first.createRow(0).createCell(0);
    		cell.setCellValue("    一个sheet放一个表的信息,第一个sheet放说明等信息,真正的表信息数据从第二个sheet开始。\n sheet名为表名+'_'+目前表个数");
    		cell.setCellStyle(cellStyle);
    		int sheetCount = 1;
    		String sheetName = "";
    		for(int k = start;k < (start + SheetNumber);k++){
    			//如果list的size小于等于k,就停止
    			if(exportTableBeanList.size() <= k){
    				break;
    			}
    			//list是有序的,从k开始
    			ExportTableBean exportTableBean = exportTableBeanList.get(k);
    			// 给每个元数据表创建一个sheet
    			//为了sheet名不重复,对表名进行截取(Excel中sheet名不得超过31位)
    			sheetName = exportTableBean.getTableName();
    			if(sheetName.length() > 27){
    				sheetName = sheetName.substring(0, 27);
    			}
    			//每个excel文件最多容纳255sheet
    			if(sheetCount > 255){
    				break;
    			}
    			//sheet名为表名_表个数
    			XSSFSheet sheet = workbook.createSheet(sheetName + "_" + (sheetCount++));
    			// 纵向固定值写入
    			
    			sheet.autoSizeColumn(1, true);
    			//index记录当前行数
    			int index = 0;
    			// 把表版本写入
    			sheet.createRow(index++).createCell(1).setCellValue(exportTableBean.getVersion());
    			// 把表名写到Excel表中
    			sheet.createRow(index++).createCell(1).setCellValue(exportTableBean.getTableName());
    			// 把表中文名称写入
    			sheet.createRow(index++).createCell(1).setCellValue(exportTableBean.getChineseName());
    			
    			int rowNum = sheet.getLastRowNum();
    			// 合并单元格
    			int coloumNum = sheet.getRow(sheet.getLastRowNum()).getPhysicalNumberOfCells();
    			if(coloumNum >= 1){
    				for (int i = 0; i <= (rowNum + 1); i++) {
    					sheet.addMergedRegion(new CellRangeAddress(i,i, 1, coloumNum - 1));
    				}
    			}
    			sheet.setDefaultColumnWidth(10);
    			//cellStyle.setWrapText(true);//自动换行
    		}
    		return workbook;
    	}
    	
    	  @GET
    	  @Path("/{userId}/table/export")
    	  @Produces(MediaType.APPLICATION_JSON)
    	  @Consumes(MediaType.APPLICATION_JSON)
    	  public Response exportMetadata(@PathParam("userId") int userId,@QueryParam("ids") String ids) throws Exception {
    	    ResponseBuilder responseBuilder = null;
    	    String filePathDetail = exportService.exportTable();
    	    try {
    	      File file = new File(filePathDetail);
    	      //System.out.println(filePathDetail);
    	      String filename = file.getName();
    	      InputStream inputStream = new BufferedInputStream(new FileInputStream(filePathDetail));
    
    	      responseBuilder = Response.ok(inputStream);
    
    	      responseBuilder.header("Content-Disposition",
    	          "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO-8859-1"));
    	      responseBuilder.header("Content-Type", "text/plain");
    	    } catch (Exception e) {
    	      OperLog.logOperation(logger, userId, request, "exportTable", filePathDetail,
    	          "export table", "failed");
    	      e.printStackTrace();
    	    }
    	    return responseBuilder.build();
    	  }
    }
    



    展开全文
  • 文件和文件夹压缩为压缩文件的Java服务,每个压缩文件的大小不超过最大大小。 可以使用相同的服务解压缩它先前生成的文件。 解压缩的输出应与压缩过程的原始输入相同。 需要压缩时,提供REST的程序需要3...
  • 1.java生成压缩文件zip 2.怎么给压缩文件添加进度条
  • 1.生成压缩文件,压缩文件名格式: 2.压缩文件存放在根目录 /upload/zipfile/年月/自定义的压缩文件名.zip 3.点击下载压缩包,系统开始对压缩文件打包,打包完成后自动开始下载 4.为了防止暴露压缩包文件路径,...
  • webpack自动压缩打包文件生成zip

    千次阅读 2019-07-05 11:12:14
    我们经常需要在执行npm run build之后把生成的static和index.html打包压缩一个压缩包发送给后端进行项目部署,每次都需要手动操作太过繁琐,so 有需求就要找方法… 安装插件 npm i filemanager-webpack-plugin ...

    应用场景
    我们经常需要在执行npm run build之后把生成的static和index.html打包压缩成一个压缩包发送给后端进行项目部署,每次都需要手动操作太过繁琐,so 有需求就要找方法…

    filemanager-webpack-plugin

    1. 安装npm i filemanager-webpack-plugin

    插件配置
    在build/webpack.base.config.js里加上如下代码

    const FileManagerWebpackPlugin = require('filemanager-webpack-plugin')
    new FileManagerWebpackPlugin ({  // 需要在 plugins 数组里添加
         onEnd: {
            delete: [
                 './dist/bhg-member-portal.zip', // 删除之前已经存在的压缩包
             ],
            archive: [
                 {source: './dist', destination: './dist/bhg-member-portal.zip'},
             ]
         }
       })
    

    zip-webpack-plugin

    1. GitHub地址
    2. 安装npm install --save-dev zip-webpack-plugin
    3. webpack.base.conf中进行配置
    const ZipWebpackPlugin = require('zip-webpack-plugin')
    new ZipWebpackPlugin ({
      path:path.join(__dirname,'../dist'),
      filename: 'bhg-member-portal.zip'
    })
    
    展开全文
  • java生成压缩文件

    万次阅读 2013-07-29 21:15:35
    在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载。所以自己写了一个压缩文件的工具类。该工具类支持单个文件和文件夹压缩。放代码: import java.io.BufferedOutputStream; import java.io.File...

      在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载。所以自己写了一个压缩文件的工具类。该工具类支持单个文件和文件夹压缩。放代码:

    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    
    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipOutputStream;
    
    /** 
     * @project: Test 
     * @author chenssy
     * @date 2013-7-28 
     * @Description: 文件压缩工具类
     * 				  将指定文件/文件夹压缩成zip、rar压缩文件
     */
    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  目标文件
    	 * @return void
    	 * @throws Exception 
    	 */
    	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;
    			byte[] buffer = new byte[1024];
    			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目录下。

    展开全文
  • 前段时间由于项目需要,使用java生成PDF文件,然后文件压缩成ZIP格式,同时对压缩文件进行加密,先代码及jar上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
  • java生成一个XML文件,并且文件压缩成ZIP格式后再写到硬盘上

     

    要将一些数据生成为XML文件,但是不写到硬盘上,而是将该文件压缩成ZIP格式后再写到硬盘上。最终结果是:硬盘上有一个test.zip的文件,解压后得到test.xml文件。
    在你声明ZipEntry的时候在name后加上.xml后缀就可以了!!!
    实例如下:
    
     
    
    运行后,在D盘里就有一个test.zip文件,里包含的就是一个test.xml文件了。

     

    展开全文
  • 通过生成临时文件进行压缩打包下载 1.生成下载所需文件 根据自己情况,我是字符串通过FileWriter在项目路径的static中直接生成文件 public static void createFile(String string,String path,String name) ...
  • 问题:以搜狗输入法的截图软件为例,如何exe和dll文件打包成一个的exe可执行文件,即将该软件目录下的文件合并成一个可以独立运行的exe文件 解决:通过压缩软件,本文我使用的软件是2345好压。(参考文章《 exe...
  • 在用百度网盘备份资料时由于文件过大而无法上传,因此需要大文件分卷压缩成多小文件以便操作使用。 1、选择该“大文件”,右键如下图所示,选择“添加到压缩文件”,此处切勿选择其他菜单,因为我们需要对压缩...
  • 怎样将java的class文件生成jar

    万次阅读 2018-03-14 16:45:55
    当开发者为客户开发出了一套java类之后,要把这些类交给用户使用,但是如果所有的类直接通过*.class的格式给用户,会比较麻烦,所以一般情况下会这些*.class文件压缩一个文件交付给用户使用,那么这样的文件就...
  • 前段时间由于项目需要,使用java生成PDF文件,然后文件压缩成ZIP格式,同时对压缩文件进行加密,先代码及jar上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
  • 概念:SequenceFile是一个由二进制序列化过的key/value的字节流组成的文本存储文件,它可以在map/reduce过程中的input/output 的format时被使用。在map/reduce过程中,map处理文件的临时输出就是使用SequenceFile...
  • 学习Java压缩zip文件压缩单个文件和多个文件,不包含文件夹;怎样用Java将文件追加到zip文件中。测试类:/** * @FileName:ZipTest.java * @Description: TODO * @Copyright: All rights Reserved, Designed By ...
  • C++生成压缩文件的源代码。 可以直接引用到项目中使用。
  • 1、找到生成的程序文件,包含一个Data文件夹和exe启动程序。 2、选中文件右键----选择压缩文件 3、选择“高级”---“自解压选项” 4、“常规”---里“解压路径”可以选填,不填默认你当前打开的路径 5、...
  • 压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** ... * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者"". ...一个简单的demo 欢迎大家指点,一起提升
  • 工具类--Java生成csv文件压缩

    千次阅读 2019-06-25 19:26:54
    csv文件支持excel文件格式打开,但是却不需要poi的支持,文件生成更加简单,方便,项目中需要用到csv文件,做下记录: 1.生成csv文件: /** * <生成csv文件> * * @param fileName fileName * @param ...
  • 前言:vue cli3的性能优化里面,开启gzip能得到很多的收益。通过webpack插件compression-webpack-plugin可以在...而且webpack打包时已经生成压缩文件,完全没必要重新通过nginx再压缩一下。发现这问题后,通过...
  • 如题,需要QtCreator编译生成的*.exe文件和它所依赖的动态链接库(*.dll)文件打包为一个exe文件,步骤如下: (1)编译生成的AppTest.exe、依赖的库文件、图标文件等复制到一个新建的文件夹下,如图: (2...
  • 可以用来压缩打包单文件、多个文件、单个目录、多目录。 Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 ...
  • java 生成加密压缩文件

    千次阅读 2018-07-04 16:12:48
    :引入jar &lt;dependency&gt; &lt;groupId&gt;net.lingala.zip4j&lt;/groupId&gt; &lt;artifactId&gt;zip4j&lt;/artifactId&gt; &lt;/dependency&gt;二:...
  • 使用Java实现多个文件压缩打包

    千次阅读 2017-10-17 22:46:45
    引言  在做项目的时候经常会涉及到文件压缩,比如近期用Java Web做一个后台管理,后台有个导出功能,需要统计生成几十个excel文件,然后进行下载,如果不这些文件进行压缩传送,耗费用户流量不说,用户浏览器...
  • 后缀为tar.gz的文件实际上时先将文件(单个或多)打包成后缀为tar的(tar文件,再用gzip压缩成gz文件,如此来说我们便可以用两步来实现此功能,请看代码: import java.io.File; import java.io....
  • PHP生成压缩文,不带要压缩文件的根目录,去掉根目录,有时可能需要这样
  • 在java中,如何创建一个文件夹,并放入代码生成文件,然后压缩放到指定目录下?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 333,379
精华内容 133,351
关键字:

怎样将文件生成一个压缩文件包