Java压缩类库的使用 2.JDK中的打包、压缩类库
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish)。
这里忽略了jar,因为jar实质上属于zip压缩。(来源:http://blog.csdn.net/inkfish)
JDK ZLIB压缩:(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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.util.zip.DeflaterOutputStream;
import java.util.zip.InflaterInputStream;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
public class JdkZLIBCompress extends Compress {
@Override
protected void doCompress(File srcFile, File destFile) throws IOException {
OutputStream out = null;
InputStream is = null;
try {
is = new BufferedInputStream(new FileInputStream(srcFile), bufferLen);
out = new DeflaterOutputStream(new BufferedOutputStream(new FileOutputStream(destFile), bufferLen));
IOUtils.copy(is, out);
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(out);
}
}
@Override
protected void doDecompress(File srcFile, File destDir) throws IOException {
InputStream is = null;
OutputStream os = null;
try {
File destFile = new File(destDir, FilenameUtils.getBaseName(srcFile.toString()));
is = new InflaterInputStream(new BufferedInputStream(new FileInputStream(srcFile), bufferLen));
os = new BufferedOutputStream(new FileOutputStream(destFile), bufferLen);
IOUtils.copy(is, os);
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
}
}
}
JDK ZIP压缩(仅适用于压缩一个文件):(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOExcep
相关文档:
十年前,Sun微系统公司将Java搬到了世人面前,这是首次协助企业建立具有前瞻性的思想的一款软件,随后Java迅猛扩散,深入到计算机业的几乎每个角落。这项技术的幕后英雄,就是本文采访的James Gosling。
上个世纪90年代初,Gosling发起并领导了一个名为Green的项目,此项目最终演变为Java。Java 的基本理念是创造一种可以 ......
最近的Devoxx大会上,Java 7将包含闭包的消息令很多人感到振奋——这将做为一个独立的JSR被实现。在众多Java 7新的语言特性中,有一些现在已经完成了。Devoxx大会的一位参会者在博客中报告了下面这些Java 7已经完成的7大新功能:
1)对集合类的语言支持;
2)自动资源管理;
3)改进的通用实例创建类型推断;
......
1.因为两者的用途不同,所以Annotation与XML应该并存
Anootation vs XML 到了现在,在Spring和EJB3各占一边的持续演示下,各自的用途已清晰。
虽然两者之间完全可以相互替代,没有绝对不能做的事情,但却存在好不好的问题,两者的用途不同,应该并用:
"size=10, ......
JAVA与C++的一个很大区别就是JAVA不需要程序员去分配,释放内存。这在很大程度上减少了程序员的工作量,但或许正因为这个原因我们经常看到一些编程错误。
例1:
从数据库查询出结果list,然后做循环处理。
......