日期:2014-05-20  浏览次数:20826 次

关于objoutputstream问题
我现在需要把一个类序列化,用到了objoutputstream函数(服务器端),但是客户端用的不是java,我现在需要再服务端把类序列化后,通过socket发送出去,我在网上找了一段代码,但是总是出错,求大家帮个忙

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bos);
os.writeObject(list);//这里就出错了
byte[] bytes = bos.toByteArray();
os.flush();
datasocket.write(bytes);//这里就是通过网络发送给客户端

------解决方案--------------------
虽然我很困惑你把对象序列化那边又不是java你怎么反序列化,但是一点我是明白的,你要写出去的的就是一个字符串,字符串怎么发送?

先写后刷吧!os.flush();



加深印象的代码段,close()

 public void close() throws IOException {
        flush();
        clear();
        bout.close();
 }

------解决方案--------------------
建议用XML/JSON作为交换。