- 浏览: 104470 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
-
qq280948982:
其实不用这么麻烦的,参考这篇文章就可解决丢失session的问 ...
Uploadify获取Session -
hui0377:
这样session 就不会过期了??
Uploadify获取Session -
jxdiamond:
使用uploadify插件时,可以通过前台脚本'formDat ...
Uploadify获取Session -
mzh_2008beijing:
楼主,第4步、在程序中使用:
MySessionContext ...
Uploadify获取Session
我们经常会使用WinZIP等压缩软件将文件进行压缩以方便传输。在java里面也提供了将文件进行压缩以减少传输时的数据量的类,可以很方便的将文件压缩成ZIP、JAR、GZIP等形式,GZIP主要是在Linux系统下的压缩文件。
下面主要讲的就是ZIP形式的压缩文件,而JAR、GZIP形式的压缩文件也是类似的用法。
ZIP是一种很常见的压缩形式,在java中要实现ZIP的压缩主要用到的是java.util.zip这个包里面的类。主要有ZipFile、 ZipOutputStream、ZipInputStream和ZipEntry。ZipOutputStream是用来压缩文件 的,ZipInputStream和ZipFile是用来解压缩文件的,在压缩和解压缩的过程中,ZipEntry都会用到。在java的Zip压缩文件 中,每一个子文件都是一个ZipEntry对象。
压缩文件代码如下:
解压缩代码如下:
下面主要讲的就是ZIP形式的压缩文件,而JAR、GZIP形式的压缩文件也是类似的用法。
ZIP是一种很常见的压缩形式,在java中要实现ZIP的压缩主要用到的是java.util.zip这个包里面的类。主要有ZipFile、 ZipOutputStream、ZipInputStream和ZipEntry。ZipOutputStream是用来压缩文件 的,ZipInputStream和ZipFile是用来解压缩文件的,在压缩和解压缩的过程中,ZipEntry都会用到。在java的Zip压缩文件 中,每一个子文件都是一个ZipEntry对象。
压缩文件代码如下:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipOutputStreamTest { public static void main(String args[]) throws IOException { test1(); test2(); } public static void test1() throws IOException { ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\testZip.zip"), Charset.forName("GBK")); //实例化一个名称为ab.txt的ZipEntry对象 ZipEntry entry = new ZipEntry("ab.txt"); //设置注释 zos.setComment("zip测试for单个文件"); //把生成的ZipEntry对象加入到压缩文件中,而之后往压缩文件中写入的内容都会放在这个ZipEntry对象里面 zos.putNextEntry(entry); InputStream is = new FileInputStream("D:\\ab.txt"); int len = 0; while ((len = is.read()) != -1) zos.write(len); is.close(); zos.close(); } public static void test2() throws IOException { File inFile = new File("D:\\test"); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\test.zip"), Charset.forName("GBK")); zos.setComment("多文件处理"); zipFile(inFile, zos, ""); zos.close(); } public static void zipFile(File inFile, ZipOutputStream zos, String dir) throws IOException { if (inFile.isDirectory()) { File[] files = inFile.listFiles(); for (File file:files) zipFile(file, zos, dir + "\\" + inFile.getName()); } else { String entryName = null; if (!"".equals(dir)) entryName = dir + "\\" + inFile.getName(); else entryName = inFile.getName(); ZipEntry entry = new ZipEntry(entryName); zos.putNextEntry(entry); InputStream is = new FileInputStream(inFile); int len = 0; while ((len = is.read()) != -1) zos.write(len); is.close(); } } }
解压缩代码如下:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.Charset; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; public class ZipInputStreamTest { public static void main(String args[]) throws IOException { File file = new File("D:\\test.zip");//压缩文件 ZipFile zipFile = new ZipFile(file);//实例化ZipFile,每一个zip压缩文件都可以表示为一个ZipFile //实例化一个Zip压缩文件的ZipInputStream对象,可以利用该类的getNextEntry()方法依次拿到每一个ZipEntry对象 ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file), Charset.forName("GBK")); ZipEntry zipEntry = null; while ((zipEntry = zipInputStream.getNextEntry()) != null) { String fileName = zipEntry.getName(); File temp = new File("D:\\unpackTest\\" + fileName); if (! temp.getParentFile().exists()) temp.getParentFile().mkdirs(); OutputStream os = new FileOutputStream(temp); //通过ZipFile的getInputStream方法拿到具体的ZipEntry的输入流 InputStream is = zipFile.getInputStream(zipEntry); int len = 0; while ((len = is.read()) != -1) os.write(len); os.close(); is.close(); } zipInputStream.close(); } }
发表评论
-
mysql超时设置using the Connector/J connection property 'autoReconnect=true' to avoid
2014-06-04 12:08 1063com.mysql.jdbc.Communications ... -
Java中Process的waitFor()阻塞问题
2013-05-13 17:34 1711最近项目需要用java解析3dsmax场景文件,但是3dsma ... -
java实现ping功能测试指定ip机器是否可达
2013-04-18 16:28 888最近总是要虚拟机运行一段时间总是出问题,但是数十台机器一台台用 ... -
java的8种排序方法
2014-09-15 22:56 643转自http://www.iteye.com/topic/11 ... -
java的8种排序方法
2013-03-20 22:53 0转自http://www.iteye.com/topic/11 ... -
java与C++程序通信交互
2013-03-08 10:54 788java与C++程序通信的方法有很多,常见的有: JNI JN ... -
Struts2拦截器处理用户操作日志
2013-03-06 14:18 1059public String intercept(Actio ... -
Spring AOP操作action时无法注入,报NullPointer异常
2013-03-06 11:33 1524当使用Spring AOP对action层进行操作时,会出现注 ... -
Spring AOP实现用户操作日志管理
2013-03-06 11:26 985通过注解方式使用AOP实现用户操纵日志管理的具体步骤如下: 1 ... -
Java中调用dll动态库的简洁方法
2013-01-07 14:47 680解压JNative-1.3.2.zip 获得三个文件,分别是: ... -
session过期iframe里出现嵌套登录界面
2012-12-17 14:59 1009在你想控制跳转的页面,比如login.jsp中的<hea ... -
Java获取系统文件类型图标并显示在JSP上
2012-12-03 15:51 2370在网站制作中通常需要上传附件,而对于附件我们往往希望在其名称前 ... -
Can not find a java.io.InputStream with the name [inputStream] in the invocation
2012-11-30 11:38 746具体异常是这句话: Can not find a java. ... -
JNI 返回结构体参数
2012-11-19 19:46 1931如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jn ... -
Tomcat设置虚拟目录
2012-11-14 12:48 811项目开发中碰到需要产生大量的图片,如果把这些图片全部放在项目目 ... -
BigDecimal不整除的一个异常
2012-11-05 17:49 770金额的数据类型是BigDecimal 通过BigDecima ... -
Java jaspereport导出pdf及excel报表源码
2012-10-30 22:16 812加载jasper文件,接收map参数导出报表至指定目录。 ... -
Java定时器的使用
2012-10-29 14:57 639本例依据Java自身提供的接口实现,通过监听器(Listene ... -
Spring定时器的使用-注解形式
2012-10-29 14:50 1060Spring3中加强了注解的使用,其中计划任务也得到了增强,现 ... -
Spring定时器的使用-xml配置形式
2012-10-29 14:37 846详细配置如下: 1、bean.xml <?xml ver ...
相关推荐
1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件的功能。`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压。你可以通过遍历文件或目录,创建`ZipEntry`对象并...
Java文件压缩与解压缩实践是指利用Java编程语言实现对文件或文件夹进行压缩和解压缩操作。以下是该实践的描述: 技术概述: Java文件压缩与解压缩是指将一个或多个文件或文件夹打包成一个压缩文件,或者将压缩文件...
Java文件压缩与解压缩是Java开发中常见的操作,特别是在数据传输、存储优化和备份场景下。本实践项目提供了源代码和相关论文,帮助开发者深入理解这一主题。在Java中,我们可以利用内置的`java.util.zip`包来实现...
本实践主要涉及了Java中如何使用标准库`java.util.zip`来实现文件或目录的压缩与解压缩操作。以下是相关的知识点详解: 1. **Java.util.zip包**:Java的标准库提供了`java.util.zip`包,它包含了处理各种ZIP格式的...
在 Java 开发中,如果需要处理 ZIP、GZIP、BZIP2、7z、ARJ、TAR、CPIO、RAR 等多种压缩格式,Apache Commons Compress 库是一个非常实用的选择。 Apache Commons Compress 库的核心优势在于其模块化的架构,每个...
Java提供了丰富的类库支持文件的压缩与解压缩,例如java.util.zip包中的类,使得开发者能够方便地实现相关功能。 Java文件压缩与解压缩的实践包含了理论知识和实际操作两个方面。在理论知识方面,开发者需要掌握...
- **解压缩**:同样,解压缩可能依赖于特定库来解析zip、rar或tar头部信息,然后按顺序读取并写入原始文件。在解压rar时,可能需要处理恢复记录,确保数据完整性。 - **错误处理和验证**:工具类应该包含了错误处理...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在处理大量数据或者进行网络传输时。本资源提供了“JAVA文件压缩与解压缩实践(源代码+LW)”的实例,其中包含了源代码和相关的论文资料,旨在帮助...
在这个例子中,`compressFile()`方法用于压缩源文件,`decompressFile()`方法用于解压缩GZIP文件。两个方法都遵循了上述的压缩和解压缩步骤。 需要注意的是,虽然GZIP是一种常见的压缩格式,但它并不适用于大文件...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理任务,这通常涉及到使用库如Apache Commons Compress、Zstd Java Library或者Java内置的ZipOutputStream和ZipInputStream类。本项目"JAVA文件压缩与解压缩实践...
本资源提供了关于Java实现文件压缩与解压缩的源代码和相关论文,旨在帮助开发者深入理解并掌握这一技能。 Java中实现文件压缩通常会用到标准库中的`java.util.zip`包,这个包提供了各种压缩和解压缩的功能。例如,...
Java文件压缩与解压缩是计算机科学中的一个常见任务,尤其在数据存储、传输和备份等领域。本实践项目涉及到了使用Java编程语言实现文件的压缩和解压缩功能,这对于理解和掌握文件处理技术至关重要。在此,我们将深入...