Я пытаюсь написать файл 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