我正在尝试将我的ArrayList
(名为Clients
)写入文件。它可以工作,但不幸的是它只是将符号写入文件而不是我的实际输入。为什么ObjectOutputStream将符号写入文件而不是我的输入?
下面是我的代码:
public void SaveToFile() {
try
{
FileOutputStream fos = new FileOutputStream("CustomerLists.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(Clients);
oos.close();
} catch (Exception ex) {
ex.printStackTrace();
}
我如何工作的呢?
你明白'writeObject'的作用吗? – Makoto
它以二进制格式打印。这并不意味着人类可读。 – 4castle
或者更重要的是,您是否了解['ObjectOutputStream'](https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutputStream.html)的作用?它创建一个**二进制**串行化Java对象和值的流。它需要文本,创建一个['FileWriter'](https://docs.oracle.com/javase/8/docs/api/java/io/FileWriter.html)而不是'FileOutputStream',并且可选地包装在['PrintWriter'](https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html)和/或['BufferedWriter'](https:// docs。 oracle.com/javase/8/docs/api/java/io/BufferedWriter.html)。 – Andreas