我正在嘗試將我的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