Java之序列化Object对象和字节数组或文件之间的转换
来源:互联网 发布:淘宝关键词在哪里设置 编辑:程序博客网 时间:2024/05/01 01:57
Java中File,byte[],Object间的转换
1、Object 对象必须是可序列化对象 。
2、可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列化文件才可以转换为Object对象。
示例:
- 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;
- public class Byte_File_Object {
- /**
- * 文件转化为字节数组
- * @EditTime 2007-8-13 上午11:45:28
- */
- 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) {
- }
- return null;
- }
- /**
- * 把字节数组保存为一个文件
- * @EditTime 2007-8-13 上午11:45:56
- */
- 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;
- }
- /**
- * 从字节数组获取对象
- * @EditTime 2007-8-13 上午11:46:34
- */
- 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();
- }
- /**
- * 从对象获取一个字节数组
- * @EditTime 2007-8-13 上午11:46:56
- */
- 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();
- }
- }
0 0
- Java之序列化Object对象和字节数组或文件之间的转换
- 字节数组、文件以及Object之间的转换
- 字节数组、文件以及Object之间的转换
- Java之Json和数组、字符串、对象之间的转换
- java工具类之对象与字节数组之间的互相转换
- java字符串和字节数组之间的转换
- java字节数组和16进制之间的转换
- 字符串和字节数组之间的转换
- 字符串对象和字节化字符数据之间的转换
- 对象和字节流数组的转换
- 对象与字节数组之间的转换工具类
- android中对象与字节数组、字符串之间的转换
- 字符串、字节数组、可序列化对象之间的相互转化
- 整数和字节数组之间的转换算法
- 字节数组和十六进制字符串之间的转换
- Java中字节与对象之间的转换
- java-----IO流 操作字节数组的流对象,对象序列化,打印流,随机存储文件,合并流,管道流,操作基本数据类型的流对象
- Java之json和对象之间的相互转换
- Java之基本数据类型及类型转换
- 在Servlet中解决输出到谷歌,IE,火狐中文乱码问题
- python 收音机
- 补第二次c++作业(两篇)
- iOS-不用网线搭建IPv6网络测试环境
- Java之序列化Object对象和字节数组或文件之间的转换
- web.xml配置(Servlet)
- 面试题:Sql Server的操作
- 关于OpenGL的RenderBuffer,FrameBuffer
- 万能关闭流
- 基于Web开发模式的信息抽取
- Ubuntu server关机命令
- JAVA实现链表面试题
- android自定义弹出框样式实现