Java:作为序列化结果的文件开头的不需要的字符

时间:2010-05-10 08:33:10

标签: java

当我用Java编写新的文本文件时,我在文件的开头得到这些字符:

¨Ìt

这是代码:

public static void writeMAP(String filename, Object object) throws IOException {
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename));
    oos.writeObject(object);
    oos.close();
}

感谢

4 个答案:

答案 0 :(得分:4)

ObjectOutputStreams not 用于编写“文本文件”。它们专门用于将Java对象的中间表示写入磁盘。此过程称为序列化。

您最有可能想要使用Writer,这对于制作人类可读的文本文件更有用。特别是,您应该查看FileWriter和/或PrintWriter

答案 1 :(得分:3)

使用ObjectOutputStream时,您可以对对象进行二进制序列化。您根本不应将该文件视为“文本文件”。

如果要以人类可读的方式序列化对象,请使用java.beans.XMLEncoder。阅读关于如何使用它的链接文档,方式与ObjectOutputStream类似。它产生XML。

答案 2 :(得分:3)

Writer output = null;
String text = "Www.criandcric.com. is my site";
File file = new File("write.txt");
output = new BufferedWriter(new FileWriter(file));
output.write(text);
output.close();

我希望有了这个你可以知道如何做到这一点。

答案 3 :(得分:2)

您不是在文件中写入文本,而是在向其写入对象,这意味着您将获得流标题,类型信息和内部结构。要编写文本,请使用Writer:

Writer w = new OutputStreamWriter(new FileOutputStream(filename), encoding);