package com.tal;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;public class Test { public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException {
Person p = new Person("张三", 25);
FileOutputStream fileOutStream = new FileOutputStream("zhangsan");
ObjectOutputStream objectOutStream = new ObjectOutputStream(
fileOutStream);
objectOutStream.writeObject(p);
objectOutStream.close();
p = null; FileInputStream fileInStream = new FileInputStream("zhangsan"); String zipFileName = "c:/test.zip";
ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(
zipFileName)); zipOutput.flush();
//将对象变成文件然后压缩成zip
addFile(zipOutput, fileInStream);
//将zip解压还原出对象
unzip(new File(zipFileName)); System.out.println("end"); } /**
* 释放文件
*
* @param path
* @param zipIns
* @param zipEntry
* @throws IOException
* @throws ClassNotFoundException
*/
private static void extractFile( ZipInputStream zipIns,
ZipEntry zipEntry) throws IOException, ClassNotFoundException {
FileOutputStream ous = new FileOutputStream("tmp");
byte[] tmp = new byte[1024];
int len = 0;
while ((len = zipIns.read(tmp)) != -1)
ous.write(tmp, 0, len);
ous.close();
zipIns.closeEntry();
FileInputStream fileInStream = new FileInputStream("tmp");
ObjectInputStream objectInStream = new ObjectInputStream(fileInStream);
Person p = (Person) objectInStream.readObject();
System.out.println(p.getName());
System.out.println(p.getAge()); } /**
* 解压缩
*
* @param input
* 压缩文件
* @param output
* 解压位置
* @throws IOException
* @throws ClassNotFoundException
*/
public static void unzip(File input) throws IOException, ClassNotFoundException {
ZipInputStream zipIns = new ZipInputStream(new FileInputStream(input));
ZipEntry zipEntry = zipIns.getNextEntry(); while (zipEntry != null) {
extractFile(zipIns, zipEntry); zipEntry = zipIns.getNextEntry();
}
zipIns.close();
} /**
* 压缩文件
*
* @param zipOutput
* @param path
* @param file
* @throws IOException
*/
private static void addFile(ZipOutputStream zipOutput, FileInputStream ins)
throws IOException { byte[] tmp = new byte[1024];
int len = 0; while ((len = ins.read(tmp)) != -1) {
zipOutput.write(tmp, 0, len);
}
ins.close(); zipOutput.closeEntry();
}}class Person implements Serializable { private String name;
private int age; public Person(String name, int age) {
this.name = name;
this.age = age;
} public int getAge() {
return age;
} public String getName() {
return name;
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;public class Test { public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException {
Person p = new Person("张三", 25);
FileOutputStream fileOutStream = new FileOutputStream("zhangsan");
ObjectOutputStream objectOutStream = new ObjectOutputStream(
fileOutStream);
objectOutStream.writeObject(p);
objectOutStream.close();
p = null; FileInputStream fileInStream = new FileInputStream("zhangsan"); String zipFileName = "c:/test.zip";
ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(
zipFileName)); zipOutput.flush();
//将对象变成文件然后压缩成zip
addFile(zipOutput, fileInStream);
//将zip解压还原出对象
unzip(new File(zipFileName)); System.out.println("end"); } /**
* 释放文件
*
* @param path
* @param zipIns
* @param zipEntry
* @throws IOException
* @throws ClassNotFoundException
*/
private static void extractFile( ZipInputStream zipIns,
ZipEntry zipEntry) throws IOException, ClassNotFoundException {
FileOutputStream ous = new FileOutputStream("tmp");
byte[] tmp = new byte[1024];
int len = 0;
while ((len = zipIns.read(tmp)) != -1)
ous.write(tmp, 0, len);
ous.close();
zipIns.closeEntry();
FileInputStream fileInStream = new FileInputStream("tmp");
ObjectInputStream objectInStream = new ObjectInputStream(fileInStream);
Person p = (Person) objectInStream.readObject();
System.out.println(p.getName());
System.out.println(p.getAge()); } /**
* 解压缩
*
* @param input
* 压缩文件
* @param output
* 解压位置
* @throws IOException
* @throws ClassNotFoundException
*/
public static void unzip(File input) throws IOException, ClassNotFoundException {
ZipInputStream zipIns = new ZipInputStream(new FileInputStream(input));
ZipEntry zipEntry = zipIns.getNextEntry(); while (zipEntry != null) {
extractFile(zipIns, zipEntry); zipEntry = zipIns.getNextEntry();
}
zipIns.close();
} /**
* 压缩文件
*
* @param zipOutput
* @param path
* @param file
* @throws IOException
*/
private static void addFile(ZipOutputStream zipOutput, FileInputStream ins)
throws IOException { byte[] tmp = new byte[1024];
int len = 0; while ((len = ins.read(tmp)) != -1) {
zipOutput.write(tmp, 0, len);
}
ins.close(); zipOutput.closeEntry();
}}class Person implements Serializable { private String name;
private int age; public Person(String name, int age) {
this.name = name;
this.age = age;
} public int getAge() {
return age;
} public String getName() {
return name;
}
}
package com.tal; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream; public class Test { public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException {
Person p = new Person( "张三 ", 25);
FileOutputStream fileOutStream = new FileOutputStream( "zhangsan ");
ObjectOutputStream objectOutStream = new ObjectOutputStream(
fileOutStream);
objectOutStream.writeObject(p);
objectOutStream.close();
p = null; FileInputStream fileInStream = new FileInputStream( "zhangsan "); String zipFileName = "c:/test.zip ";
ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(
zipFileName)); zipOutput.flush();
//将对象变成文件然后压缩成zip
addFile(zipOutput, fileInStream);
//将zip解压还原出对象
unzip(new File(zipFileName)); System.out.println( "end "); } /**
* 释放文件
*
* @param path
* @param zipIns
* @param zipEntry
* @throws IOException
* @throws ClassNotFoundException
*/
private static void extractFile( ZipInputStream zipIns,
ZipEntry zipEntry) throws IOException, ClassNotFoundException {
FileOutputStream ous = new FileOutputStream( "tmp ");
byte[] tmp = new byte[1024];
int len = 0;
while ((len = zipIns.read(tmp)) != -1)
ous.write(tmp, 0, len);
ous.close();
zipIns.closeEntry();
FileInputStream fileInStream = new FileInputStream( "tmp ");
ObjectInputStream objectInStream = new ObjectInputStream(fileInStream);
Person p = (Person) objectInStream.readObject(); System.out.println(p.getName());
System.out.println(p.getAge());[/color] } /**
* 解压缩
*
* @param input
* 压缩文件
* @param output
* 解压位置
* @throws IOException
* @throws ClassNotFoundException
*/
public static void unzip(File input) throws IOException, ClassNotFoundException { ZipInputStream zipIns = new ZipInputStream(new FileInputStream(input));
ZipEntry zipEntry = zipIns.getNextEntry(); while (zipEntry != null) {
extractFile(zipIns, zipEntry); zipEntry = zipIns.getNextEntry();
}
zipIns.close();
} /**
* 压缩文件
*
* @param zipOutput
* @param path
* @param file
* @throws IOException
*/
private static void addFile(ZipOutputStream zipOutput, FileInputStream ins)
throws IOException { byte[] tmp = new byte[1024];
int len = 0; while ((len = ins.read(tmp)) != -1) {
zipOutput.write(tmp, 0, len);
}
ins.close(); zipOutput.closeEntry();
} } class Person implements Serializable { private String name;
private int age; public Person(String name, int age) {
this.name = name;
this.age = age;
} public int getAge() {
return age;
} public String getName() {
return name;
}
}
zipOutput.putNextEntry(new ZipEntry("zhangsan")); // 增加这一句
addFile(zipOutput, fileInStream);你的代码写少了哦!
// 将对象变成文件然后压缩成zip
zipOutput.putNextEntry(new ZipEntry("zhangsan"));
addFile(zipOutput, fileInStream);
zipOutput.close(); // 这里还得关闭