示例代码:
String zipFilePath = filePath+".zip"; //压缩文件 在原文件名的基础上,追加 。zip ZipUtil.compress(filePath,zipFilePath); //压缩文件
/** * @Description: * 压缩和解压工具 */ public class ZipUtil { public static void compress(String srcFilePath, String destFilePath) { File srcFile = new File(srcFilePath); if (!srcFile.exists()) { throw new RuntimeException(srcFilePath + "不存在"); } if(!srcFile.isFile()){ throw new RuntimeException(srcFilePath + "不是文件"); } File zipFile = new File(srcFilePath+".zip"); FileOutputStream fos = null; CheckedOutputStream cos = null; ZipOutputStream zos = null; try { fos = new FileOutputStream(zipFile); cos = new CheckedOutputStream(fos, new CRC32()); zos = new ZipOutputStream(cos); // zos.setEncoding("GBK"); //设置字符集 zos.setMethod(ZipOutputStream.DEFLATED); // 启用压缩 zos.setLevel(Deflater.BEST_COMPRESSION); // 设置压缩级别为最强压缩 String baseDir = ""; compressFile(srcFile, zos, baseDir); zos.close(); } catch (Exception e) { e.printStackTrace(); } finally{ IOUtils.closeQuietly(fos); IOUtils.closeQuietly(cos); IOUtils.closeQuietly(zos); } } /** * 压缩文件 * */ /** * 压缩文件 * @param file 待压缩文件 * @param zos 压缩流 * @param baseDir 文件标记 */ private static void compressFile(File file, ZipOutputStream zos, String baseDir) { BufferedInputStream bis = null; FileInputStream fis = null; try { fis = new FileInputStream(file); bis = new BufferedInputStream(fis); ZipEntry entry = new ZipEntry(baseDir + file.getName()); zos.putNextEntry(entry); int count; byte[] buf = new byte[1024]; while ((count = bis.read(buf)) != -1) { zos.write(buf, 0, count); } zos.flush(); // 注,在使用缓冲流写压缩文件时,一个条件完后一定要刷新,不然可能有的内容就会存入到后面条目中去了 zos.closeEntry(); // 关闭当前ZIP条目并定位流以写入下一个条目 } catch (Exception e) { e.printStackTrace(); } finally{ IOUtils.closeQuietly(fis); IOUtils.closeQuietly(bis); } } /** * @Description: * 解压文件 * @param zipPath 被压缩文件,请使用绝对路径 * @param //targetPath 解压路径,解压后的文件将会放入此目录中,请使用绝对路径 * 默认为压缩文件的路径的父目录为解压路径 * @param //encoding 解压编码 */ public static void decompress(String zipPath) throws FileNotFoundException, ZipException, IOException { // 获取解缩文件 File file = new File(zipPath); if (!file.isFile()) { throw new FileNotFoundException("要解压的文件不存在"); } String targetPath = file.getParent(); // ZipFile zipFile = new ZipFile(file, "GBK"); // 实例化ZipFile对象 GBK // Enumeration<ZipEntry> files = zipFile.getEntries(); // 获取ZipFile中的条目 ZipFile zipFile = new ZipFile(file, Charset.forName("GBK")); // 实例化ZipFile对象 GBK Enumeration<? extends ZipEntry> files = zipFile.entries(); // 获取ZipFile中的条目 ZipEntry entry = null; // 迭代中的每一个条目 File outFile = null; // 解压后的文件 BufferedInputStream bin = null; // 读取压缩文件的输入流 BufferedOutputStream bout = null; // 写入解压后文件的输出流 while (files.hasMoreElements()) { entry = files.nextElement(); // 获取解压条目 // 实例化解压后文件对象 outFile = new File(targetPath + File.separator + entry.getName()); // 如果条目为目录,则跳向下一个 if (entry.getName().endsWith(File.separator)) { outFile.mkdirs(); continue; } if (!outFile.getParentFile().exists()) { // 创建目录 outFile.getParentFile().mkdirs(); } outFile.createNewFile(); // 创建新文件 if (!outFile.canWrite()) { // 如果不可写,则跳向下一个条目 continue; } try { // 获取读取条目的输入流 bin = new BufferedInputStream(zipFile.getInputStream(entry)); // 获取解压后文件的输出流 bout = new BufferedOutputStream(new FileOutputStream(outFile)); // 读取条目,并写入解压后文件 byte[] buffer = new byte[1024]; int readCount = -1; while ((readCount = bin.read(buffer)) != -1) { bout.write(buffer, 0, readCount); } } finally { IOUtils.closeQuietly(bin); IOUtils.closeQuietly(bout); } } zipFile.close(); //这个需要关闭不然删除不了 } /** * @Description: * 解压文件 // * @param zipPath 被压缩文件,请使用绝对路径 // * @param targetPath 解压路径,解压后的文件将会放入此目录中,请使用绝对路径 * 默认为压缩文件的路径的父目录为解压路径 // * @param encoding 解压编码 */ // public static void main(String[] args) throws Exception{ // String file = "C:\\FakePath\\412901197810083510_20180909_p2p_m.xml"; // ZipUtil.compress(file,file+".zip"); // ZipUtil.decompress(file+".zip"); // } }
相关推荐
总的来说,7-Zip的批量压缩功能既适合个人用户快速处理日常任务,也适用于开发者或系统管理员进行大规模的数据整理和备份。其强大的定制性和灵活性,使其成为Windows平台上不可多得的压缩工具。通过熟练掌握这些操作...
ZIP是一种常见的文件压缩格式,它支持多文件打包,且具有较高的压缩比,广泛应用于数据归档和分发。 总的来说,理解和掌握这些文件管理的知识点对于任何IT从业者都非常重要,它们不仅提高了工作效率,还能确保数据...
"zip文件压缩解压库文件(整理过的)"是一个专门为处理zip文件而设计的程序库,基于zlib-1.2.5版本的源代码进行优化和整理,适用于Visual Studio(VS)环境。 **zlib** 是一个开源的压缩库,由Jean-loup Gailly和...
4. 文件压缩与解压:集成常见的压缩格式,如`.zip`、`.tar.gz`,实现文件的压缩和解压缩。 5. 文件元数据处理:获取或修改文件的元数据,如权限、创建时间、修改时间等。 6. 错误处理:良好的异常处理机制,确保在...
ZIP是一种常见的文件压缩格式,支持多文件和目录的压缩。它允许用户在压缩包内保留文件的原始属性,包括时间戳,这使得解压后的文件能够保持原有的排序。 8. 解压与恢复: 当用户解压"Sort_file.zip"时,为了保持...
本篇文章将深入探讨如何使用Java实现带密码的ZIP文件压缩和解压缩功能,结合给定的文件名列表,我们将讲解核心概念、源码分析以及实际应用。 首先,我们需要了解Java中的`java.util.zip`包,它提供了对ZIP和GZIP...
像"FileManager.zip"这样的压缩包使用了zip格式,这是一种广泛支持的文件压缩标准。解压缩工具有很多,如WinRAR、7-Zip和系统自带的解压工具。压缩文件可以减少存储需求,但解压缩时需要消耗计算资源。 归档和备份...
不仅能浏览ZIP和RAR压缩文件,还能进行解压和创建压缩文件,无需额外安装解压软件,简化了文件处理流程。 4. **网络文件访问**: 支持FTP、SFTP、WebDAV等网络协议,用户可以直接通过RS文件管理器连接到远程...
在Java编程语言中,处理文件压缩和解压缩是常见的任务,特别是在数据传输、备份或存储时。本篇文章将深入探讨如何使用Java实现带密码保护的ZIP文件的压缩和解压缩功能,这对于保护敏感数据至关重要。 首先,Java...
这可能意味着在实际使用中,用户会看到类似"file1.zip", "folder1.zip", "large_file1.zip"等具体文件名,这些是ZipBuilder处理后的压缩结果。 总结起来,ZipBuilder是一款专为大文件集合设计的压缩工具,它具备...
总的来说,"C#文件提取专家文件整理"意味着开发一个工具或功能,它能高效地从ZIP文件中提取文件,并进行后续的整理工作,如归档、重命名或移动文件。这个过程需要对C#的文件I/O和压缩库有深入的理解,同时也要考虑...
【标题】:“一款精美图片在线压缩网站html源码源码资源下载整理.zip”是指一个包含HTML源代码的压缩包,这个源码用于构建一个在线图片压缩网站。网站设计精美,功能实用,允许用户上传图片并进行压缩处理,优化图片...
总之,"File-kedua"代表了IT工作中常见的文件管理和数据传输活动,涉及到的技能和工具包括文件压缩、解压、文件命名规范、文件内容处理等。了解并熟练掌握这些技能,能有效提高个人在IT领域的专业素养。
在Java中,我们可以使用内置的`java.util.zip`包来实现ZIP文件的压缩和解压缩功能。本教程将深入讲解如何使用Java进行ZIP文件操作。 首先,我们需要了解`ZipOutputStream`和`ZipInputStream`这两个类。`...
还有可能包含ZIP和RAR文件的支持,包括创建、解压和管理这些压缩文件的能力。 在v3.1.7这个版本中,开发者可能针对之前版本的反馈进行了改进,修复了一些可能导致应用崩溃或者用户体验不佳的bug,同时可能引入了新...
首先,我们需要引入Python的`zipfile`库来处理.zip格式的压缩文件和`tarfile`库来处理.tar或.tar.gz格式的压缩文件。这两个库都是Python标准库的一部分,无需额外安装即可使用。 1. **处理.zip文件** - `zipfile`...
综合以上信息,我们可以推断这个压缩包"convfile.zip_zip"可能是一个包含文本对齐数据的压缩文件,可能用于编码、生物信息学分析、数据整理或其他需要特定文本格式的应用场景。然而,要深入理解文件的具体内容和用途...
– 支持读取并解压ZIP,7ZIP,RAR和TAR文件,支持加密压缩文件 – 能够创建受密码保护的ZIP和7ZIP文件 – 云服务管理器,支持: Dropbox, Box, OneDrive, Google Drive, Sugarsync, Copy, Mediafire, Owncloud, ...
在命令行环境中,可以结合使用tar和压缩工具,例如"tar -czvf archive.tar.gz file1 file2",将多个文件打包并压缩为.tar.gz格式。 3. 解压工具:对应于每种压缩格式,都有相应的解压工具。例如,WinRAR和7-Zip不仅...
总结来说,"android打包zip"涉及到在Android开发中使用Java或Groovy进行ZIP文件的创建,这通常用于整理和分发资源或库文件。JAR文件是Java类库的容器,它们也可以被包含在ZIP文件中,便于管理和使用。了解并熟练掌握...