2014-11-14 90 views
0

我想读/写一个对象到一个文件,并提出了这个代码,我已编辑,但是当我打开文件它出现怪异的字符和标志,我猜那是那里的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 

而且,我有另一个类,这是一个地图这家一流的,但我没有任何线索,我能如何把它们写到一个文件藏汉,所以文件将包含我的医生地图。 在此先感谢! “请正确书写”

+2

“正确写入”是什么意思?你能指望什么?为什么? – 2014-11-14 14:50:53

+0

序列化的要点是写出对象的内容,以便稍后可以将它加载回java对象中。您使用的本地Java序列化具有如何分散对象的特定格式。如果你想要一个更直观和可读的序列化形式,你应该看看JSON或其他一些serailzation方法。 – user3062946 2014-11-14 15:07:38

+0

我想我的意思是缓冲写作/阅读,然后,我解决了它,现在它的工作正常。 – Rogercb 2014-11-14 15:30:46

回答

2

这是Serialize应该做的。它在做什么没有问题。如果您想读取同一个对象,请反序列化该文件并重新创建该对象。如果你想让对象数据具有人类可读的文件,那么你应该创建自己的方法来将对象数据写入一个.txt文件并将其格式化为你想要的格式。