完美解决linux打包大于4G问题
来源:互联网 发布:php写入mysql数据库 编辑:程序博客网 时间:2024/05/17 02:53
源于下载数据量特别大,需要将下载文本打包到服务。jdk自带打包无法满足。使用如下方法能完美解决。
* 服务器打包*
/** * 使用apache工具打包完美解决大于4G问题 */ public void apacheZip() { String fgf = ConstKey.separator; logger.info("EAST--打包开始"); try{ String uploadFilePath = ConstKey.initSysMap.get(SysInit.offlinedown.name())+fgf+suitCode+fgf+fileNameDate+fgf; System.out.println("EAST打包路径:"+uploadFilePath); String zipPath = ConstKey.initSysMap.get(SysInit.offlinedown.name())+fgf+suitCode+fgf+fileNameDate+"_zip"+fgf; File file = new File(zipPath); if(!file .exists() && !file .isDirectory()) file .mkdirs(); ZipUtils.compressFilesZip(uploadFilePath,zipPath+fileNameDate+".zip"); }catch(Exception e){ logger.error("EAST打包异常:"+e.getMessage()); e.printStackTrace(); } logger.info("EAST--打包结束"); }
**打包方法** /** * 使用apache旗下的commons-compress * @param pathname * @param zipUrl * @return * @throws Exception */ public static File compressFilesZip(String pathname, String zipUrl) throws Exception { File srcFile = new File(pathname); File[] files = srcFile.listFiles(); File zipFile = new File(zipUrl); if (!zipFile.exists()){ zipFile.createNewFile(); } ZipArchiveOutputStream zaos = null; try { zaos = new ZipArchiveOutputStream(zipFile); zaos.setUseZip64(Zip64Mode.AsNeeded); zaos.setEncoding("gbk"); // 解决BCSLinux环境 zip压缩包中的文件中文乱码 LYS //将每个文件用ZipArchiveEntry封装 //再用ZipArchiveOutputStream写到压缩文件中 for(File file : files) { if(file != null) { ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file,file.getName()); zaos.putArchiveEntry(zipArchiveEntry); if(file.isDirectory()){ continue; } InputStream is = null; try { is = new BufferedInputStream(new FileInputStream(file)); byte[] buffer = new byte[1024 ]; int len = -1; while((len = is.read(buffer)) != -1) { //把缓冲区的字节写入到ZipArchiveEntry zaos.write(buffer, 0, len); } zaos.closeArchiveEntry(); }catch(Exception e) { throw new RuntimeException(e); }finally { if(is != null) is.close(); } } } zaos.finish(); } finally { if(zaos != null) { zaos.close(); } } return zipFile; }
参考:http://hw1287789687.iteye.com/blog/2050132
阅读全文
0 0
- 完美解决linux打包大于4G问题
- linux中打开大文件的问题(大于4G)
- linux中打开大文件的问题(大于4G)
- linux中打开大文件的问题(大于4G)
- 解决Linux中在创建大于4g文件时遇到的File Size Limit Exceeded问题
- linux支持大于4G内存
- SQLServer的一个奇怪问题:数据库文件不能大于4G?
- Fat32文件格式不支持大于4G大文件的问题
- fseek获取大于4G的文件大小的问题
- fseek获取大于4G的文件大小的问题
- Linux下解压大于4G的zip文件
- 解决QNetworkAccessManager实现ftp功能后,不能上传大于1G文件的问题
- 解决linux不能安装g++问题
- linux下操作大于2G文件
- 部分解决window10镜像大于4G无法刻录到U盘。
- [Linux] ubuntu下CodeBlocks 出现的两个问题 完美解决
- 完美解决 blackarch linux 黑客系统国内安装问题
- 完美解决Linux系统下显示乱码问题
- C++学习:对象和类详细总结
- Matlab 编程基础(一)笔记
- java 验证包含属性的对象是否全部为空
- java.lang.NoSuchMethodError: org.springframework.beans.MutablePropertyValues.a
- 阿里云PHP-SMS短信服务——验证码发送教程
- 完美解决linux打包大于4G问题
- Can't load IA 32-bit .dll-yellowcong
- Android studio Github 开源项目依赖添加失败解决方法
- Matlab中save函数的使用
- Java学习之Iterator(迭代器)的一般用法 (转)
- jsp中${pageContext.request.contextPath}的用法
- 五种方法教你鉴别山寨、欺诈和钓鱼网站
- linux的定时任务
- Glide4.0的基本用法