`
carlos
  • 浏览: 18019 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

pack and unpack

阅读更多

package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ZipFloder {

 private static int i;

 public static void main(String args[]) throws IOException {
  unpack();

 }

 private static void unpack() throws IOException {
  // TODO Auto-generated method stub
  String compress = "nutch-0.9.tar.gz";// zip压缩文件

  String decompression = "/f1";// 解压路径

  java.io.File dir = new java.io.File(decompression);

  java.util.zip.ZipFile zf = new java.util.zip.ZipFile(compress);

  java.util.Enumeration enumer = zf.entries();

  while (enumer.hasMoreElements()) {

   java.util.zip.ZipEntry ze = (java.util.zip.ZipEntry) enumer
     .nextElement();

   String zename = ze.getName();

   zename = new String(zename);// 文件名,不支持中文.

   System.out.println(zename);

   if (ze.isDirectory()) {
    java.io.File file = new java.io.File(dir.getAbsolutePath()
      + "/" + zename);

    file.mkdirs();
   } else {
    java.io.File file = new java.io.File(dir.getAbsolutePath()
      + "/" + zename).getParentFile();

    if (!file.exists()) {
     file.mkdirs();
    }
    byte zeby[] = new byte[(int) ze.getSize()];

    java.io.InputStream is = zf.getInputStream(ze);

    is.read(zeby);

    is.close();

    java.io.FileOutputStream fos = new java.io.FileOutputStream(dir
      .getAbsolutePath()
      + "/" + zename);

    fos.write(zeby);

    fos.close();
   }
  }
  zf.close();

 }

 private static void pack() throws IOException {
  // TODO Auto-generated method stub

  String compress = "/f2";// 要压缩的目录

  String decompression = "test.rar";// 压缩路径

  java.util.zip.ZipOutputStream zos = new java.util.zip.ZipOutputStream(
    new java.io.FileOutputStream(new java.io.File(decompression)));

  compress(zos, new File(compress));

  zos.close();
  System.out.println("the files count: " + i);
 }

 public static void compress(java.util.zip.ZipOutputStream zos,
   java.io.File file) throws java.io.IOException {
  if (file.isFile()) {
   byte by[] = new byte[(int) file.length()];

   java.io.FileInputStream is = new java.io.FileInputStream(file);

   is.read(by);

   is.close();

   java.util.zip.ZipEntry ze = new java.util.zip.ZipEntry(file
     .getPath());

   zos.putNextEntry(ze);

   zos.write(by);

   zos.closeEntry();
   System.out.println(file.getName());
  } else if (file.isDirectory()) {
   java.io.File files[] = file.listFiles();

   if (files != null)
    for (File f : files) {
     compress(zos, f);
     i++;
    }
  }

 }
}

分享到:
评论

相关推荐

    sap-me-pack-unpack-how-to-guide-en.pdf

    ### SAP ME Pack and Unpack功能设置与使用指南 #### 概述 本指南旨在为用户提供关于如何在SAP Manufacturing Execution (SAP ME)系统中设置和使用Pack与Unpack功能的详细步骤。此功能主要用于处理制造过程中产品...

    php pack与unpack 摸板字符字符含义

    理解这些模板字符对于有效使用 `pack` 和 `unpack` 功能至关重要,因为它们可以帮助你在各种场景中高效地处理二进制数据。通过熟练掌握这些字符及其用法,你可以轻松地将 PHP 数据结构转换为二进制流,或者从网络...

    aml-imgpack:用于 Amlogic 徽标图像文件的资源打包程序

    aml-imgpack ...Pack and unpack amlogic uboot images positional arguments: file an integer for the accumulator optional arguments: -h, --help show this help message and exit --unpack

    HOWTO Unpack, Edit, and Re-Pack Boot Images

    这篇教程主要讲解如何在Android系统中解包、编辑和重新打包boot.img以及recovery映像文件,这是Android内核修改的重要步骤。对于Android爱好者和开发者来说,了解这个过程可以帮助他们定制和优化系统。...

    Arduino Udp 以太网扩展板:使用 Arduino UDP 以太网扩展板传输和接收任何类型和长度的数据数组-matlab开发

    R2015a 的 Simulink Arduino 支持包中的默认 UDP 块可以传输和接收数据的标量字节。 此条目扩展了此功能,使用户能够... 依赖项: 该工具箱还提供了一个自定义工具箱“Pack and Unpack Data”,其中包含将整数数组转

    ctce8中兴配置文件编辑器.zip

    在Windows的管理员模式下的命令行终端,比如cmd或者powershell中使用。 exe文件没有可视化界面UI!...CTCE8 file pack/unpack tool 0.1.0 USAGE: ctce8_cfg_tool_x64.exe [SUBCOMMAND] FLAGS: -h, --help Print

    msgpack-python-0.4.2.tar

    `Unpacker.unpack()` and some unpack methods now raises `OutOfData` instead of `StopIteration`. `StopIteration` is used for iterator protocol only. How to use ----------- One-shot pack & unpack ^^^^...

    jdk-9.0.1_doc-all 最新版

    Defines tools for transforming a JAR file into a compressed pack200 file and transforming a packed file into a JAR file, including the pack200 and unpack200 tools. jdk.packager.services Defines the ...

    jsonpack:JSON的压缩算法

    jsonpack ...// And then unpack the packed var json = jsonpack . unpack ( packed ) ; 安装 jsonpack可以通过 , 或安装,也可以直接。 通过cpm: $ cpm install jsonpack 通过volo: $ volo a

    comFramework

    the dedicated API with the application software and the unpack/pack functions for message (de)composition can be generated from information in the network databases. A sample integration demonstrates...

    SQLMemTable for Delphi / C++ Builder

    - Compiler information: Delphi or C++ Builder, Version, Edition, Service Pack - Environmental information: your OS and Service Pack - Description of your problem (as much information as possible to ...

    Total.Commander.v7.55.RC2.Multilingual.WinALL.Cracked-BLiZZARD

    - Long filenames in Windows 95/98 and Windows NT (16 and 32-bit) 捋? 圹? - Direct access to Network Neighbourhood 捋? 圹? - Supports Drag & Drop with Explorer/the Desktop etc. 捋? 圹? - Command ...

    morton-java:莫顿PackUnpack库

    莫顿装箱/拆箱库基本有关详细信息,请参见 。...Morton64 m = new Morton64 ( 2 , 32 ); // 2 dimenstions 32 bits eachlong code = m . pack( 13 , 42 ); // pack two valueslong [] ... // should get back 13 and 42

    jdk-14_linux-x64_bin.rpm

    删除 java.util.jar 包中的 pack200 和 unpack200 工具以及 Pack200 API。 368:Text Blocks (Second Preview) 文本块特性(Text Blocks)与常见的 Python"""any input"""特性一样,它支持多行字符串文字,...

    lichee_20170502_1607_全志R16的linux系统编译需要改动的文件_使用parrotv1.1的内核_没有外层目录.7z

    rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar zxvf lichee_parrotv1.1_20161202.tar.gz rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ ...Preparing to unpack .../libencode-locale-perl_...

    OVATION算法模块介绍PPT课件PPT学习教案.pptx

    OVATION 算法模块提供了点格式转换功能,包括 BCDNIN、BCDNOUT、PACK16、UNPACK16、SATOSP、SPTOSA、TRANSLATOR 等,可以对过程变量进行格式转换和处理。 数学函数 OVATION 算法模块提供了多种数学函数,包括 ...

    Python-Bits-and-Bytes

    例如,可以使用`struct.pack()`将多个值打包成字节,然后用`struct.unpack()`解析这些字节。 ```python import struct # 打包一个浮点数和一个整数 packed_data = struct.pack('fd', 3.14, 42) print(packed_data)...

    如何实现连续的PING

    icmp_type, icmp_code, checksum, id, sequence = struct.unpack("bbHHh", received[20:28]) if icmp_type == ICMP_ECHO_REPLY and id == id: rtt = time.time() - start_time print(f"Reply from {host}: ...

Global site tag (gtag.js) - Google Analytics