2011-11-28 94 views
2

我正在爲我的日常任務構建一個框架。我使用很多類型參數在scala中進行編程。保存數據結構的類型信息

現在我的目標是將數據結構保存到文件(例如xml文件)。但是我意識到使用xml文件是不可能的。由於我是新來的這種問題,我問:

有沒有辦法將我的數據結構的類型存儲在一個文件? scala中有一種方法嗎?

+1

你看看序列化了嗎?您可以使用二進制格式或XML。 –

+2

不,我沒有看看序列化,因爲我完全是JVM技術的新手。這可能是一個理由,看看這個@我從來沒有照顧過的可串行化的東西。 – peri4n

+0

如果保持這些文件的人類可讀性不是要求,那麼序列化將是您在實現和性能方面的最佳選擇。 –

回答

4

好吧,夥計們。通過命名我搜索的東西,你基本上做得很好。

其序列化。

考慮到這一點,我搜索了網頁,並完全驚訝於這個功能的Java。 現在我做這樣的事情:

object Serialize { 

    def write[A](o: A): Array[Byte] = { 
    val ba = new java.io.ByteArrayOutputStream(512) 
    val out = new java.io.ObjectOutputStream(ba) 
    out.writeObject(o) 
    out.close() 
    ba.toByteArray() 
    } 

    def read[A](buffer: Array[Byte]): A = { 
    val in = new java.io.ObjectInputStream(new java.io.ByteArrayInputStream(buffer)) 
    in.readObject().asInstanceOf[A] 
    } 
} 

生成的字節數組可以寫入文件和寄託都工作得很好。

我總覺得這個解決方案不是人類可讀的。如果我的想法有一天會改變。整個網絡上都有JSON解析器。