对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中?

解决方案 »

  1.   

    个人认为:是否简单认为对象实现序列化接口,然后用对象流ObjectOutputStream写入文件?
      

  2.   

    既然你能得到流,为啥还怕写不到文件中去?不过最直接的方式就是2楼说的,直接打开文件然后用ObjectOutputStream写入文件,类似如下:
    try{   
      FileOutputStream fs = new FileOutputStream("myobj.bin");   
      ObjectOutputStream os =  new ObjectOutputStream(fs );   
      os.writeObject(myobj);   
      os.close();   
    }catch(Exception ex){   
      ex.printStackTrace();   
    }   
      

  3.   

    没有直接的方法可以将对象写入到随机存取文件中,但是可以使用ByteArray输入/输出流作为中介,来向随机存取文件中写入或从随机存取文件中读出字节,并且可以利用字节流来创建对象输入/输出流,以用于读写对象.需要注意的是在字节流中要包含一个完整的对象,否则读写对象时将发生错误. 例如,java.io.ByteArrayOutputStream可用于获取ObjectOutputStream的字节流,从中可得到byte数组并可将之写入到随机存取文件中.相反,我们可以从随机存取文件中读出字节数组,利用它可构造ByteArrayInputStream,进而构造出ObjectInputStream,以读取对象.