将传入的文件内容包装成一个zip形式
2010-11-23 16:38
225 查看
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipUtil {
static String encoding = "GBK";
/**
* 该方法需要将传入的文件内容包装成一个zip形式的文件流的形式。<br>
* 即如果folderName={<b>"fd1"</b>,<b>"fd2"</b>},fileName={<b>"f1"</b>,<b>"f2"</b>},fileContent={<b>"内容1"</b>,<b>"内容2"</b>}<br>
* ops=new FileOutputStream(<b>"c://test.zip"</b>)<br>
*那么 <b>c://test.zip</b>文件应该是一个zip形式的压缩包,而该压缩包的内容应该为两个分别名为<b>fd1</b>、<b>fd2</b>的文件夹;<br>
*而fd1文件夹下应该只有一个文本文件内容为<b>"内容1"</b>、文件名为<b>"f1"</b>的文件;<br>
*而fd2文件夹下应该只有一个文本文件内容为<b>"内容2"</b>、文件名为<b>"f2"</b>的文件;
*
* @param ops 输出流,实际使用时会在该方法外创建一个文件流。
* @param folderName 压缩包中的各个目录的目录名
* @param fileName 压缩包中每个目录只能存在一个文件,该数组即是每个目录下的文件名,与<b>folderName</b>数组索引相对应
* @param fileContent 压缩包中每个目录只能存在一个文件,该数组即是每个目录下的文件的内容,其内容只是一个String,与<b>folderName</b>、<b>fileName</b>数组索引相对应
* @throws IOException
*/
public void str2ZipStream(OutputStream ops ,String[] folderName, String[] fileName , String[] fileContent) throws IOException{
CheckedOutputStream checked = new CheckedOutputStream(ops,new Adler32());
ZipOutputStream zos = new ZipOutputStream(checked);
//将文件所有信息打包成zip
for (int i = 0; i < fileContent.length; i++) {
ZipEntry entry = new ZipEntry(folderName[i]+"//"+fileName[i]);
zos.putNextEntry(entry);
zos.write(fileContent[i].getBytes(encoding));
}
zos.close();
}
}
需要一ant.jar包
import java.io.OutputStream;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipUtil {
static String encoding = "GBK";
/**
* 该方法需要将传入的文件内容包装成一个zip形式的文件流的形式。<br>
* 即如果folderName={<b>"fd1"</b>,<b>"fd2"</b>},fileName={<b>"f1"</b>,<b>"f2"</b>},fileContent={<b>"内容1"</b>,<b>"内容2"</b>}<br>
* ops=new FileOutputStream(<b>"c://test.zip"</b>)<br>
*那么 <b>c://test.zip</b>文件应该是一个zip形式的压缩包,而该压缩包的内容应该为两个分别名为<b>fd1</b>、<b>fd2</b>的文件夹;<br>
*而fd1文件夹下应该只有一个文本文件内容为<b>"内容1"</b>、文件名为<b>"f1"</b>的文件;<br>
*而fd2文件夹下应该只有一个文本文件内容为<b>"内容2"</b>、文件名为<b>"f2"</b>的文件;
*
* @param ops 输出流,实际使用时会在该方法外创建一个文件流。
* @param folderName 压缩包中的各个目录的目录名
* @param fileName 压缩包中每个目录只能存在一个文件,该数组即是每个目录下的文件名,与<b>folderName</b>数组索引相对应
* @param fileContent 压缩包中每个目录只能存在一个文件,该数组即是每个目录下的文件的内容,其内容只是一个String,与<b>folderName</b>、<b>fileName</b>数组索引相对应
* @throws IOException
*/
public void str2ZipStream(OutputStream ops ,String[] folderName, String[] fileName , String[] fileContent) throws IOException{
CheckedOutputStream checked = new CheckedOutputStream(ops,new Adler32());
ZipOutputStream zos = new ZipOutputStream(checked);
//将文件所有信息打包成zip
for (int i = 0; i < fileContent.length; i++) {
ZipEntry entry = new ZipEntry(folderName[i]+"//"+fileName[i]);
zos.putNextEntry(entry);
zos.write(fileContent[i].getBytes(encoding));
}
zos.close();
}
}
需要一ant.jar包
相关文章推荐
- 在解压gz文件时,如果直接用java.util.zip.GZIPInputStream来处理问题只能解压很少一部分内容,通过类MultiMemberGZIPInputStream 可以完全解压一个gz文件。
- Java IO把一个文件中的内容以字符串的形式读出来
- 一个完整的MSI包的配置文件XML的内容形式和查看方法ORCA
- 002_010 Python 处理字符串中的Zip文件 你的程序收到了一个字符串,内容是一个ZIP文件,需要读取zip文件的信息
- vim中如何复制当前文件内容粘贴到另外一个文件的命令
- 编写一个业务函数,实现按行读取文件。把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出。
- vim中如何将一个文件的内容拷贝到另一个文件中
- linux下目录大小为什么是4K?一个目录下最多有个多少个子目录?最多有多少个文件?ls -l显示的内容中total到底是什么?
- python中文件的基本操作,以及一个文件内容分割的联系!
- 在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world
- JAVA多线程读取同一个文件,加速对文件内容的获取
- C# StreamWriter写入一个ini文件到本地,StreamReader读取保存在本地的ini文件内容
- [QTP]通过vbscript读取一个文件中的所有内容
- java 多文件压缩成一个zip压缩包
- Linux Shell从一个文件去掉包含在另一个文件的内容
- linux命令行下如何以目录树的形式显示一个文件夹的所有文件
- 批处理脚本读取文件内容赋值给一个变量
- Ant Mail:用一个Template文件作为邮件内容
- 系统调用,将一个文件复=中的内容复制到另一个文件中去
- (testng多个class文件执行时混乱,不是等一个class内的所有methods执行完再去执行下一个class内的内容)问题的解决