请教关于JAVA读写ZIP文件的问题

vv1977 2013-04-02 09:48:42
可不可以将ZIP文件当成文件夹一样,直接在里面生成txt文件,就是说不经过中间文件直接将程序生成的文本文件做成ZIP文件.
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2013-04-03
  • 打赏
  • 举报
回复
简单的应该可以的。 也就是说,直接将txt文件数据转换成zip文件的数据流,写入文件。 装饰器模式实现文件IO流的ZIP压缩解压(一)
STEEL-CHINA 2013-04-02
  • 打赏
  • 举报
回复
引用 3 楼 mantou0611 的回复:
以前写的一个测试,不知道对你有用吗,没有很看懂你的问题什么意思 Java code?1234567891011121314151617181920212223242526272829303132333435363738394041import java.io.BufferedOutputStream;import java.io.BufferedReader;impor……
===================== 他应该是说对里面的文件直接修改。
清蒸豆豆 2013-04-02
  • 打赏
  • 举报
回复
以前写的一个测试,不知道对你有用吗,没有很看懂你的问题什么意思
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();
		}
	}

}
STEEL-CHINA 2013-04-02
  • 打赏
  • 举报
回复
可以,N年前看过。不过忘记了,需要网上找找。
rumlee 2013-04-02
  • 打赏
  • 举报
回复
这好像不行吧,java对zip文件的操作好像只能是按照一个文件流的方式,不能直接对zip文件进行修改,这可能与zip文件的格式有关。
yongtaimen 2013-04-02
  • 打赏
  • 举报
回复
你是希望压缩文件还向文件夹一样使用还是打开这个压缩文件就可以直接运行那个可执行文件? winxp下压缩文件本身就可以当作普通文件夹使用。打开后在列表里直接双击可执行文件就好了,如果是打开压缩文件自动运行exe文件,那用以下方法:用winrar压缩时,选择创建自解压格式压缩文件。高级选项--高级自解压选项---解压后运行---把解压后完整路径添上ok了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧