import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class ZipFolder {
OutputStream out;
static ZipOutputStream zips;
static InputStream in;
private String dir;
public OutputStream getOut() {
return out;
}
public void setOut(OutputStream out) {
this.out = out;
}
public String getDir() {
return dir;
}
public void setDir(String dir) {
this.dir = dir;
}
public void zipfile(String file) {
try {
int len = 0;
byte[] buff = new byte[1024];
in = new FileInputStream(file);
zips.putNextEntry(new ZipEntry(file.substring(dir.length() + 2)));
while ((len = in.read(buff)) != -1) {
zips.write(buff, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void folder(String folder) {
File f = new File(folder);
File[] fw = f.listFiles();
for (int i = 0; i < fw.length; i++) {
if (fw[i].isDirectory()) {
System.out.println("|" + fw[i]);
folder(fw[i].toString());
} else {
System.out.println("| " + fw[i].toString());
zipfile(fw[i].toString());
}
}
}
// 压缩文件
private void zipIn(String fileIn,String zipOut) {
ZipFolder is = new ZipFolder();
OutputStream out1;
try {
out1 = new FileOutputStream(zipOut);
is.setOut(out1);
zips = new ZipOutputStream(is.getOut());
is.setDir(fileIn);
// 调用 folder
is.folder(fileIn);
zips.close();
in.close();
is.getOut().close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("| 压缩结束.... ");
}
private void UnZip(ZipFile zFile, String path) {
try {
// 获取压缩包中的每个文件
Enumeration enu = zFile.entries();
while (enu.hasMoreElements()) {
// 将文件路径放入zEntry
ZipEntry zEntry = (ZipEntry) enu.nextElement();
// 创建此文件路径的File对象
File file = new File(path + "//" + zEntry.getName());
// 如果文件夹不存在,则创建
File parentDir = new File(file.getParent());
if (!parentDir.exists()) {
parentDir.mkdirs();
}
// 解压文件
InputStream read = zFile.getInputStream(zEntry);
FileOutputStream write = new FileOutputStream(file.getPath());
int len = 0;
byte[] buff = new byte[1024];
while ((len = read.read(buff, 0, buff.length)) != -1) {
write.write(buff, 0, len);
}
write.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
// 解压缩文件
public void zipOut(String zipIn,String fileOut) {
try {
// ZipFile 以使用指定模式从指定 File(path) 对象读取
ZipFile zip = new ZipFile(new File(zipIn));
UnZip(zip, fileOut);
zip.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(" 解压缩结束....");
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
ZipFolder zip = new ZipFolder();
// // 1.压缩
// zip.zipIn("E:\\Program Files", "E:\\files.zip");
// // 2.解压缩
// zip.zipOut("E:\\files.zip","e:\\321");
}
}
分享到:
相关推荐
### J2ME环境下基于ZLIB的数据压缩与解压缩——关键技术解析 #### 一、引言:J2ME与ZLIB的结合背景 J2ME(Java2 Micro Edition),由Sun Microsystems为嵌入式和消费类电子设备设计的开发平台,与J2SE和J2EE并列为...
在解压缩后,应当将其放置在“j2se/html/zh_CN/api”目录下,以便在本地进行查阅。** **对于初学者来说,了解J2SE的以下几个关键知识点至关重要:** 1. **基本语法**:包括数据类型、变量、控制结构(如if语句、...
本代码是一个简单的解压缩工具,其可以实现将文件压缩成压缩文件,也可解压缩(此功能与压缩类似,本人并没有完成)。其中实现了JList的添加图标的selection还实现了将文件夹中的所有文件压缩的递归算法。请尝试。...
- 解压缩安装即可。 3. **使用Eclipse编写HelloWorld** - 创建新的Java项目。 - 在项目中创建一个新的Java类,命名为`HelloWorld`。 - 编写HelloWorld代码。 - 运行程序。 #### 注释、标识符命名规则及Java中...
这里推荐使用ZIP文件进行解压缩安装,因为这种方式更具通用性。 安装Tomcat的步骤包括: 1. 使用解压缩工具(如WinZip或WinRAR)将jakarta-tomcat-5.5.7.zip解压缩到指定的驱动器和目录。 2. 解压缩后,你会看到一...
1. 使用WinZip或WinRAR等解压缩工具将jakarta-tomcat-5.5.7.zip解压至任意指定的目录,比如D:\jakarta-tomcat-5.5.7。 2. 解压后,会形成一个包含多个子目录的结构,如图5-2所示,每个目录都有特定用途: - /bin:...
除了动态链接库,还需要解压缩`hyperic-sigar-1.6.4.zip`这个文件,从中获取到包含Java绑定的jar文件,比如`sigar.jar`。这个jar文件包含了Java对Sigar API的封装,需要将其添加到你的Java项目的类路径中。对于J2SE...
在下载和安装Java SDK时,可能需要解压缩下载的文件,如j2sdk-1_4_1-*.exe。 9. 实用代码示例 给出的Java代码片段演示了如何创建一个简单的Java applet,它使用Graphics类在applet窗口中绘制线条和矩形,并填充颜色...
iReport的安装通常是解压缩下载的ZIP文件到合适位置,不需要额外的安装步骤。配置iReport涉及到设置JasperReport的库文件路径,确保iReport能够找到JasperReport的相关组件。在iReport中,可以通过“预设”菜单选择...
- 下载后解压缩文件到目标位置。 - 运行解压缩后的 Eclipse 应用程序。 - **Linux 系统**: - 解压下载的文件:`#tar xvfz eclipse-SDK-3.0.2-linux-gtk.zip` - 运行解压目录中的 Eclipse 应用程序。 #### 二...
下载TOMCAT压缩包(如`apache-tomcat-6.0.18.tar.gz`),解压缩到指定目录: ```sh tar -zxvf apache-tomcat-6.0.18.tar.gz ``` ##### 2. 修改TOMCAT配置文件 - **编辑`tomcat-users.xml`**:位于`/path/to/apache...
程序会自动解压缩并生成一个名为j2sdk-1_4_2_06-linux-i586.rpm的RPM软件包。 下一步是安装这个RPM包,使用`rpm`命令进行安装: ``` rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm ``` 安装完成后,你需要设置Java环境...
2. **解压缩**:将下载的文件解压缩至目标目录,如D盘根目录。 3. **配置环境变量**: - 新建系统变量`CATALINA_HOME`,指向Tomcat的解压目录,例如`D:\jakarta-tomcat-5.0.30`。 - 更新`CLASSPATH`,添加`%...
在使用前,用户需要先解压缩,然后按照软件提供的说明运行该文件,导入待反编译的Java字节码文件或目录,即可开始反编译过程。在使用过程中,用户应遵循版权法规,尊重原作者的知识产权,仅在合法和合理的情况下使用...
运行时可能会遇到问题,此时需要解压缩`appFuse.war`文件,查看`readme.txt`文件中的说明完成最后的安装步骤。例如,可以通过执行`ant setup-db`命令创建数据库。 对于新手来说,上述安装过程可能会遇到一些挑战。...
- 解压缩`NLpack1-eclipse-SDK-3.2-win32.zip`至Eclipse安装目录下的`Language`子目录中。 - 在Eclipse安装目录下创建`links`子目录,并在此目录下新建文本文件`language.start`,内容如下: ``` path=d:\\eclipse...
2. 解压缩下载的文件,例如`eclipse-java-latest-linux-gtk-x86_64.tar.gz`,到你希望的目录,如`/opt/eclipse`。 3. 解压缩后,你可以通过命令行或图形界面启动Eclipse。在命令行中,导航到Eclipse的安装目录并...
从压缩包子文件的文件名称列表来看,只有一个文件"qrcode",这可能是解压缩后的主程序或者库文件,用户可能需要这个文件来实现QR码的解码功能。 在Java中,处理QR码通常涉及到使用像ZXing(Zebra Crossing)这样的...
将jspsmartupload.rar解压缩,并将解压缩后生成的jspsmartupload整个目录,拷贝到您在第3步中安装jakarta-tomcat的目录下的webapps目录下。比如,D:Tomcat 4.0webapps,注意需要连同目录“jspsmartupload”一起拷贝。 ...