2014-11-14 66 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文件並將其格式化爲你想要的格式。