一、有兩點需要注意:
1、Object 對象必須是可序列化對象 。
2、可序列化的 Object 對象都可以轉換爲一個磁盤文件;反過來則不一定成立,只有序列
化文件纔可以轉換爲 Object 對象。
二、相關的轉換方法:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication2;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
*
* @author Dao
*/
public class Main
{
public static byte[] getBytesFromFile(File f)
{
if (f == null)
{
return null;
}
try
{
FileInputStream stream = new FileInputStream(f);
ByteArrayOutputStream out = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = stream.read(b)) != -1)
{
out.write(b, 0, n);
}
stream.close();
out.close();
return out.toByteArray();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
public static File getFileFromBytes(byte[] b, String outputFile)
{
BufferedOutputStream stream = null;
File file = null;
try
{
file = new File(outputFile);
FileOutputStream fstream = new FileOutputStream(file);
stream = new BufferedOutputStream(fstream);
stream.write(b);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (stream != null)
{
try
{
stream.close();
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
}
return file;
}
public static Object getObjectFromBytes(byte[] objBytes) throws Exception
{
if (objBytes == null || objBytes.length == 0)
{
return null;
}
ByteArrayInputStream bi = new ByteArrayInputStream(objBytes);
ObjectInputStream oi = new ObjectInputStream(bi);
return oi.readObject();
}
public static byte[] getBytesFromObject(Serializable obj) throws Exception
{
if (obj == null)
{
return null;
}
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(obj);
return bo.toByteArray();
}
}