我现在的问题是: 在我的文本文件中,当尝试使用 ObjectOutputStream 将对象写入 Cases.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
但这不会生成音乐文件。
关于java - 使用 ObjectOutputStream 将对象写入文本文件时出现不可读的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59195991/