package com.vci.client.portal.Formdesign.object;
|
|
import java.awt.Image;
|
import java.awt.Toolkit;
|
import java.io.BufferedInputStream;
|
import java.io.BufferedOutputStream;
|
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.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPOutputStream;
|
|
import com.vci.client.portal.Formdesign.ControlDragManager;
|
|
|
/**
|
* 工具类
|
*
|
* @author liudi
|
*
|
*/
|
public class ObjectUtil {
|
|
private ObjectUtil() {
|
}
|
|
/**
|
* 克隆对象
|
*
|
* @param obj
|
* @return
|
*/
|
public static Object cloneObject(Object obj) {
|
Object copyObj = null;
|
try {
|
String fileName = System.nanoTime() + "";
|
File f = new File(fileName);
|
writeObject(obj, f);
|
copyObj = readObject(f);
|
System.gc();
|
f.delete();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return copyObj;
|
}
|
|
/**
|
* 反序列化
|
*
|
* @param f
|
* @return
|
* @throws FileNotFoundException
|
* @throws IOException
|
* @throws ClassNotFoundException
|
*/
|
public static Object readObject(File f) throws FileNotFoundException,
|
IOException, ClassNotFoundException {
|
ObjectInputStream ois = null;
|
ois = new ObjectInputStream(new BufferedInputStream(
|
new FileInputStream(f)));
|
Object obj = ois.readObject();
|
ois.close();
|
return obj;
|
}
|
|
/**
|
* 序列化
|
*
|
* @param obj
|
* @param f
|
* @throws FileNotFoundException
|
* @throws IOException
|
*/
|
public static void writeObject(Object obj, File f)
|
throws FileNotFoundException, IOException {
|
ObjectOutputStream out = null;
|
out = new ObjectOutputStream(new BufferedOutputStream(
|
new FileOutputStream(f)));
|
out.writeObject(obj);
|
out.flush();
|
out.close();
|
}
|
|
/**
|
* 解压缩反序列化
|
*
|
* @param f
|
* @return
|
* @throws FileNotFoundException
|
* @throws IOException
|
* @throws ClassNotFoundException
|
*/
|
public static Object readZip(File f) throws FileNotFoundException,
|
IOException, ClassNotFoundException {
|
ObjectInputStream ois = null;
|
GZIPInputStream gis;
|
gis = new GZIPInputStream(new BufferedInputStream(
|
new FileInputStream(f)));
|
ois = new ObjectInputStream(gis);
|
Object obj = ois.readObject();
|
ois.close();
|
return obj;
|
}
|
|
/**
|
* 压缩序列化
|
*
|
* @param obj
|
* @param f
|
* @throws FileNotFoundException
|
* @throws IOException
|
*/
|
public static void writeZip(Object obj, File f)
|
throws FileNotFoundException, IOException {
|
ObjectOutputStream out = null;
|
GZIPOutputStream gout = null;
|
gout = new GZIPOutputStream(new BufferedOutputStream(
|
new FileOutputStream(f)));
|
out = new ObjectOutputStream(gout);
|
out.writeObject(obj);
|
out.flush();
|
gout.finish();
|
out.close();
|
}
|
|
/**
|
* 获取图片
|
*
|
* @param name
|
* @return
|
*/
|
public static Image getImage(String name) {
|
return Toolkit.getDefaultToolkit().getImage(
|
ControlDragManager.class.getResource(name));
|
}
|
}
|