我正在尝试读取/写入一个文件的对象,并想出了我编辑过的这段代码,但是当我打开文件时出现奇怪的字符和符号,我想那里的Serializable东西就在那里。有没有办法正确写出来? 到目前为止,这是我的代码。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
public class Controlador_Dades_Doctor
{
public void escriureFitxer(Doctor doctor){
ObjectOutputStream out;
try {
File file = new File("Doctors.ser");
out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(doctor);
out.flush();
out.close();
System.out.println("Object written to file");
}
catch (FileNotFoundException ex) {
System.out.println("Error with specified file") ;
ex.printStackTrace();
}
catch (IOException ex) {
System.out.println("Error with I/O processes") ;
ex.printStackTrace();
}
}
}
这就是我的输出文件,因为你可以看到它有奇怪的字符。
¬í sr DoctorÑmçUÝâ& I idI num_guardiesD souL nomt Ljava/lang/String;xp @—p t rux
另外,我有另一个类是第一类的Map,我不知道如何将它们写入文件中,所以一个文件将包含我的Doctor Map。 提前谢谢!
答案 0 :(得分:2)
“正确写”。这就是Serialize应该做的事情。它正在做什么没有错。如果要读取同一对象,则反序列化文件并重新创建对象。如果您希望人类可读的文件包含对象数据,那么您应该创建自己的方法,将对象数据写入.txt文件并根据需要进行格式化。