本人现想将list写入文件,用writeObject()方法写入后文件内容是序列化的内容,打开文件看不到正常内容,请问有什么方法可以直接实现写入后文件内容为正常内容。因为逻辑关系我必须将整个Object同时写入文件的。

解决方案 »

  1.   

    lz是以二进制的形式进行写操作的,内容肯定看不大的,
    lz现在的需求,自己还是没有这方面的解决方案
      

  2.   

    我一度认为实现Externalizable接口就可以自己定制序列化写入文件的格式,试验过才发现这样做同样是以二进制的形式写入,后来了解了一些序列化和反序列化的原理后才彻底明白想在writeObject时把对象写成一个可读文本是不可能的。
    不过如果一定要把Object保存成一个可读文本的话也是有方法的,比如把反序列化(readObject)时得到的信息按照自己喜欢的格式写入另一个文本,或者直接重写该类的toString方法。
      

  3.   

    list里存的是啥呀? 最好先把list里的内容转成String在屏幕上先打印一下,没有问题就写文件呗.
    FileWriter.write(string + "\n")就可以了
      

  4.   

    把文件变成Base64输出一个文本,还原的时候把Base64代码成文件!记住文件格式
      

  5.   

    lz, 你非要和字符和字节较劲吗?  你要能看到文本情况的话, 建议你自己去写个序列化,用xml来描述吧