请教关于JAVA读写ZIP文件的问题 可不可以将ZIP文件当成文件夹一样,直接在里面生成txt文件,就是说不经过中间文件直接将程序生成的文本文件做成ZIP文件. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这好像不行吧,java对zip文件的操作好像只能是按照一个文件流的方式,不能直接对zip文件进行修改,这可能与zip文件的格式有关。 以前写的一个测试,不知道对你有用吗,没有很看懂你的问题什么意思import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.StringReader;import java.util.zip.Adler32;import java.util.zip.CheckedOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class ZipCompress { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String[] files = {"111.txt", "222.txt", "333.txt"}; String[] test = {"aaaaaaaa", "bbbbbbbb", "cccccccc"}; try { FileOutputStream f = new FileOutputStream("C://test.zip"); CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32()); ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(csum));// out.setComment("A test of Java Zipping"); // Can't read the above comment, though for (int i = 0; i < files.length; i++) { System.out.println("Writing file " + files[i]);// BufferedReader in = new BufferedReader(new FileReader(files[i])); BufferedReader in = new BufferedReader(new StringReader(test[i])); out.putNextEntry(new ZipEntry(files[i])); int c; while ((c = in.read()) != -1) out.write(c); in.close(); } out.close(); } catch (Exception e){ e.printStackTrace(); } }} 你是希望压缩文件还向文件夹一样使用还是打开这个压缩文件就可以直接运行那个可执行文件? winxp下压缩文件本身就可以当作普通文件夹使用。打开后在列表里直接双击可执行文件就好了,如果是打开压缩文件自动运行exe文件,那用以下方法:用winrar压缩时,选择创建自解压格式压缩文件。高级选项--高级自解压选项---解压后运行---把解压后完整路径添上ok了。 简单的应该可以的。也就是说,直接将txt文件数据转换成zip文件的数据流,写入文件。装饰器模式实现文件IO流的ZIP压缩解压(一) 关于Sun指南里用TableSorter给JTable排序问题 java中实现getImage的问题 怎样在JCreator中添加新包啊? 如何做WINDOWS中的菜单\工具栏? David 的求职历程(全程报道长达16天的求职过程) 这是什么意思? 请大家帮我找找错,Thank you! 如何不在jbuilder的ide环境中使用jbuilder的类? 新手求助。String创建了几个对象 【高分悬赏】对比找茬protected关键字 请教一个拆分字符串的算法问题! 循环生成随机数做校验,不成功继续生成
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.StringReader;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class ZipCompress { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] files = {"111.txt", "222.txt", "333.txt"};
String[] test = {"aaaaaaaa", "bbbbbbbb", "cccccccc"};
try {
FileOutputStream f = new FileOutputStream("C://test.zip");
CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(csum));
// out.setComment("A test of Java Zipping");
// Can't read the above comment, though
for (int i = 0; i < files.length; i++) {
System.out.println("Writing file " + files[i]);
// BufferedReader in = new BufferedReader(new FileReader(files[i]));
BufferedReader in = new BufferedReader(new StringReader(test[i]));
out.putNextEntry(new ZipEntry(files[i]));
int c;
while ((c = in.read()) != -1)
out.write(c);
in.close();
}
out.close();
} catch (Exception e){
e.printStackTrace();
}
}}
也就是说,直接将txt文件数据转换成zip文件的数据流,写入文件。
装饰器模式实现文件IO流的ZIP压缩解压(一)