繁体   English   中英

使用 ObjectOutputStream 将对象写入文本文件时获取不可读字符

[英]Getting unreadable characters when using ObjectOutputStream to write my object to a text file

我现在的问题是:在我的文本文件中,当我尝试使用 ObjectOutputStream 将我的对象写入我的 case.txt 文件时,我得到了一些看起来很时髦的字符。

    FileOutputStream file = new FileOutputStream("/cases.txt");
    ObjectOutputStream data = new ObjectOutputStream(file);

    DefectProduct s1 = new DefectProduct("test", 5, "test", "test",
            "test", 50, 2019, 1, 24, "505", "test" );
    data.writeObject(s1);

    data.flush();
    data.close();
    System.out.println("Record added");

现在我正在尝试将我的对象写入文本文件的部分工作。 我在某处读到 ObjectOutputStream 是将对象写入文本文件的选择。 这样对吗?

最后,我的目标是获取整个对象数组列表并将整个数组列表一次写入我的文本文件。

ObjectOutputStream不会产生人类可读的流(即您不能在文本编辑器中打开它并期望读取内容)。 文本编辑器试图将文件中的所有内容显示为文本,但文件本身不包含有效文本,这就是文本编辑器显示不可读字符的原因。

ObjectOutputStream的目的是生成稍后可以使用ObjectInputStream读回的数据,但没有人说这些数据将是有效的文本数据。

您的输出文件是cases.txt并不重要。 文件的扩展名只是名称的一部分,也是对用户或操作系统的提示,该文件可能包含在该文件中,但这与该文件中实际保存的内容无关。 您可以将输出文件cases.mp3但这不会生成音乐文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM