将对象写入/读取到文件

时间:2014-11-14 14:49:19

标签: java class object filewriter

我正在尝试读取/写入一个文件的对象,并想出了我编辑过的这段代码,但是当我打开文件时出现奇怪的字符和符号,我想那里的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。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

“正确写”。这就是Serialize应该做的事情。它正在做什么没有错。如果要读取同一对象,则反序列化文件并重新创建对象。如果您希望人类可读的文件包含对象数据,那么您应该创建自己的方法,将对象数据写入.txt文件并根据需要进行格式化。