首先要将一些数据生成为XML文件,但是不写到硬盘上,而是将该文件压缩成ZIP格式后再写到硬盘上。最终结果是:硬盘上有一个test.zip的文件,解压后得到test.xml文件。
小弟我弄了半天只能是生成一个test.zip的文件,但是解压后却是test文件,没有.xml后缀。
还请高人说下实现的步骤、要点。有事例代码更好。
谢谢啊~
小弟我弄了半天只能是生成一个test.zip的文件,但是解压后却是test文件,没有.xml后缀。
还请高人说下实现的步骤、要点。有事例代码更好。
谢谢啊~
一种是用zip流来实现,google一下,应该有用法参考。
另一种方法是利用Runtime对象创建一个压缩的进程,利用共享软件winrar目录下的rar.exe实现压缩。
String param[] = {"d:\rar.exe","d:\a.xml","d:\"};
Process p = Runtime.getRuntime().exec(param);两种方法的比较:
我都有尝试过,第一种方法在处理一些稍大一点的图片文件(jpg)时,解压后,无法预览,压坏了。
而第二种方法,相对来说比较消耗系统资源。
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos));
ZipEntry entry = new ZipEntry("export.db");
zos.putNextEntry(entry);
ObjectOutputStream oos = new ObjectOutputStream(zos);
oos.writeObject(object);
oos.close();
zos.close();
fos.close();你只要把ObjectOutputStream改变一下,改成你的xml文件的输出流就可以
这样不用保存xml文件,然后用压缩工具进行压缩
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry = zis.getNextEntry();
ObjectInputStream ois = new ObjectInputStream(zis);
Object o = ois.readObject();
ois.close();
zis.close();
fis.close();