UserInfo obj;
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream output = new ObjectOutputStream(bo);
output.writeObject(obj);
byte[] bytes = bo.toByteArray();
String byteStr = new String(bytes);
这样就可以了。
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream output = new ObjectOutputStream(bo);
output.writeObject(obj);
byte[] bytes = bo.toByteArray();
String byteStr = new String(bytes);
这样就可以了。
解决方案 »
- 求Java写的邮件系统(切实可用)
- jsf中如何获取托管bean的属性?
- why,why,why? 实在搞不明白
- Setting property 'source' to 'org.eclipse.jst.jee.server:*did not find a matching property.
- <Struts开发入门与项目实践 >?
- 伤透脑筋的tomcat问题~~~
- 点评Java full-stack框架
- LOG4J小问题(高分发放)
- 求助IO流这块的一个demo里面的问题
- struts2 模型驱动 json 只能返回模型数据?
- 我用eclipse+jboss怎样配置到可以单步debug,请大家帮忙
- socket阻塞,如何处理等待?---在线,谢谢!
还原的时候:
byte[] bytes = byteStr.toByteArray();
ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
ObjectInputStream input = new ObjectInputStream(bi);
UserInfo obj = (UserInfo) input.readObject();
byte[] bytes = btyeStr.getBytes();
ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
ObjectInputStream input = new ObjectInputStream(bi);
UserInfo obj = (UserInfo) input.readObject();异常:OptionalDataException
至少String没有toByteArray()这个方法
我用getBytes()代替了之后还是报异常
但将这个String还原成byte[]时,和原来的byte[]并不相等。
这个我也不知道到底是因为什么,可能是因为通过这个byte[]所生成的String是一堆乱码而导致部分无法还原的原因吧。
使用byte[]保存一点问题都没有,如果用byte[]不能解决问题,可以按自己的格式生成一个String,只要能保证还原时和原来的byte[]值一样就可以了。