织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 杂项技术 > JAVA >

Object,byte[],ByteBuffer之间的转换

落鹤生 发布于 2012-01-02 22:11 点击:次 
实现了Java之间的转换,关于Java与ActionScript之间的数据传输与转换。主要思想同上暂时不予讨论。。。
TAG:

实现了Java之间的转换,关于Java与ActionScript之间的数据传输与转换。主要思想同上暂时不予讨论。。。

  1. package cn.vicky.utils; 
  2.  
  3. import java.io.ByteArrayInputStream; 
  4. import java.io.ByteArrayOutputStream; 
  5. import java.io.IOException; 
  6. import java.io.InputStream; 
  7. import java.io.ObjectInputStream; 
  8. import java.io.ObjectOutputStream; 
  9. import java.nio.ByteBuffer; 
  10.  
  11. import org.apache.mina.core.buffer.IoBuffer; 
  12.  
  13. /** 
  14.  * 对象序列化,反序列化(序列化对象转byte[],ByteBuffer, byte[]转object 
  15.  *  
  16.  * @author Vicky 
  17.  * @email eclipser@163.com 
  18.  */ 
  19. public class ByteUtil { 
  20.  
  21.     public static byte[] getBytes(Object obj) throws IOException { 
  22.         ByteArrayOutputStream bout = new ByteArrayOutputStream(); 
  23.         ObjectOutputStream out = new ObjectOutputStream(bout); 
  24.         out.writeObject(obj); 
  25.         out.flush(); 
  26.         byte[] bytes = bout.toByteArray(); 
  27.         bout.close(); 
  28.         out.close(); 
  29.         return bytes; 
  30.     } 
  31.  
  32.     public static Object getObject(byte[] bytes) throws IOException
  33. , ClassNotFoundException { 
  34.         ByteArrayInputStream bi = new ByteArrayInputStream(bytes); 
  35.         ObjectInputStream oi = new ObjectInputStream(bi); 
  36.         Object obj = oi.readObject(); 
  37.         bi.close(); 
  38.         oi.close(); 
  39.         return obj; 
  40.     } 
  41.  
  42.     public static Object getObject(ByteBuffer byteBuffer)
  43.  throws ClassNotFoundException, IOException { 
  44.         // 需要mina框架的IoBuffer 
  45.         IoBuffer buffer = 
  46. IoBuffer.allocate(byteBuffer.capacity()).setAutoExpand(true); // 自动展开 
  47.         for (int i = 0; i < byteBuffer.capacity(); i++) { 
  48.             byteBuffer.position(i); 
  49.             buffer.put(byteBuffer.get()); 
  50.         } 
  51.         buffer.position(0); 
  52.         InputStream input = buffer.asInputStream(); 
  53.         ObjectInputStream oi = new ObjectInputStream(input); 
  54.         Object obj = oi.readObject(); 
  55.         input.close(); 
  56.         oi.close(); 
  57.         return obj; 
  58.     } 
  59.  
  60.     public static ByteBuffer getByteBuffer(Object obj) throws IOException { 
  61.         byte[] bytes = ByteUtil.getBytes(obj); 
  62.         ByteBuffer buff = ByteBuffer.wrap(bytes); 
  63.         return buff; 
  64.     } 
  65.  

 

(eclipser1987)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/201201/15578.html]
本文出处:CSDN博客 作者:eclipser1987 原文
顶一下
(0)
0%
踩一下
(4)
100%
------分隔线----------------------------
相关文章
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容