您的位置:首页 > 编程语言 > Java开发

java生成压缩文件

2014-08-20 22:48 337 查看
1)因为使用jdk自带的压缩类或导致中文乱码,所以使用ant.jar中带的压缩类

2)maven中导入ant.jar

<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.4</version>
</dependency>
3)压缩文件

<span style="white-space:pre">	</span>    try
{
File file = new File("e:"+File.separator+"文件.txt");
File bmp = new File("e:"+File.separator+"图像.bmp");
if (!file.exists() || !bmp.exists())
{
<span style="white-space:pre">	</span>System.out.println("文件不存在");
}
else
{
File zip = new File("e:"+File.separator+"中文压缩.zip");
if (!zip.exists())
{
zip.createNewFile();
}
<span style="white-space:pre">		</span>// 创建文件输入流对象
<span style="white-space:pre">		</span>FileInputStream fin = new FileInputStream(file);
<span style="white-space:pre">		</span>FileInputStream bin = new FileInputStream(bmp);
<span style="white-space:pre">		</span>// 创建文件输出流对象
<span style="white-space:pre">		</span>FileOutputStream out = new FileOutputStream(zip);
<span style="white-space:pre">		</span>// 创建ZIP数据输出流对象
<span style="white-space:pre">		</span>ZipOutputStream zipOut = new ZipOutputStream(out);
<span style="white-space:pre">		</span>zipOut.setEncoding("gb18030");
<span style="white-space:pre">		</span>// 创建指向压缩原始文件的入口
<span style="white-space:pre">		</span>int number = 0;
<span style="white-space:pre">		</span>zipOut.putNextEntry(new ZipEntry(file.getName()));
<span style="white-space:pre">		</span>// 向压缩文件中输出数据
<span style="white-space:pre">		</span>byte[] buffer = new byte[512];
<span style="white-space:pre">		</span>//向压缩包中第一个文件写入数据
<span style="white-space:pre">		</span>while ((number = fin.read(buffer)) != -1) {
<span style="white-space:pre">		</span>zipOut.write(buffer, 0, number);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>//向压缩包中第二个文件写入数据
<span style="white-space:pre">		</span>zipOut.putNextEntry(new ZipEntry(bmp.getName()));
<span style="white-space:pre">		</span>while ((number = bin.read(buffer)) != -1) {
<span style="white-space:pre">		</span> zipOut.write(buffer, 0, number);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>zipOut.close();
<span style="white-space:pre">		</span>out.close();
<span style="white-space:pre">		</span>fin.close();
<span style="white-space:pre">		</span>bin.close();
<span style="white-space:pre">	</span>}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: