【转】Java中File,byte[],Object间的转换一、有两点需要注意:????1、Object 对象必须是可序列化对象 。??? 2、可
【转】Java中File,byte[],Object间的转换
一、有两点需要注意:
????1、Object 对象必须是可序列化对象 。
??? 2、可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列
???????? 化文件才可以转换为 Object 对象。
二、相关的转换方法:
??????
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.BufferedOutputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.ByteArrayInputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.ByteArrayOutputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.File;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.FileInputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.FileOutputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.IOException;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.ObjectInputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.ObjectOutputStream;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
import?java.io.Serializable;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518797.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518798.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518799.gif)
public?class?Byte_File_Object?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????/**?*//**
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?文件转化为字节数组
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@Author?Sean.guo
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@EditTime?2007-8-13?上午11:45:28
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
?????*/
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????public?static?byte[]?getBytesFromFile(File?f)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????if?(f?==?null)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????return?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????try?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????FileInputStream?stream?=?new?FileInputStream(f);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????ByteArrayOutputStream?out?=?new?ByteArrayOutputStream(1000);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????byte[]?b?=?new?byte[1000];
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????for (int n;(n = stream.read(b)) != -1;) {
out.write(b, 0, n);
}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????stream.close();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????out.close();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????return?out.toByteArray();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????}?catch?(IOException?e)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????return?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????/**?*//**
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?把字节数组保存为一个文件
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@Author?Sean.guo
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@EditTime?2007-8-13?上午11:45:56
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
?????*/
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????public?static?File?getFileFromBytes(byte[]?b,?String?outputFile)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????BufferedOutputStream?stream?=?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????File?file?=?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????try?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????file?=?new?File(outputFile);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????FileOutputStream?fstream?=?new?FileOutputStream(file);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????stream?=?new?BufferedOutputStream(fstream);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????stream.write(b);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????}?catch?(Exception?e)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????e.printStackTrace();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????}?finally?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????????if?(stream?!=?null)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????????????try?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????????????stream.close();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????????????}?catch?(IOException?e1)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????????????e1.printStackTrace();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????return?file;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????/**?*//**
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?从字节数组获取对象
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@Author?Sean.guo
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@EditTime?2007-8-13?上午11:46:34
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
?????*/
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????public?static?Object?getObjectFromBytes(byte[]?objBytes)?throws?Exception?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????if?(objBytes?==?null?||?objBytes.length?==?0)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????return?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????ByteArrayInputStream?bi?=?new?ByteArrayInputStream(objBytes);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????ObjectInputStream?oi?=?new?ObjectInputStream(bi);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????return?oi.readObject();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????/**?*//**
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?从对象获取一个字节数组
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@Author?Sean.guo
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
?????*?@EditTime?2007-8-13?上午11:46:56
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
?????*/
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????public?static?byte[]?getBytesFromObject(Serializable?obj)?throws?Exception?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518801.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518802.gif)
????????if?(obj?==?null)?...{
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????????return?null;
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????ByteArrayOutputStream?bo?=?new?ByteArrayOutputStream();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????ObjectOutputStream?oo?=?new?ObjectOutputStream(bo);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????oo.writeObject(obj);
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
????????return?bo.toByteArray();
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518803.gif)
????}
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518800.gif)
![【转】Java中File,byte[],Object间的变换](//img.reader8.net/uploadfile/jiaocheng/20140140/2720/2014012719202518804.gif)
}