現在我有一個數據庫,其中一個字段類型是一個字節數組。但是將內存轉換爲字節數組?
現在我有一塊內存或一個對象。如何將這段內存或對象轉換爲字節數組,然後將字節數組存儲到數據庫中。
假設對象是
Foo foo
存儲器是
buf (actually, don't know how to declare it yet)
數據庫字段是
byte data[256]
只有像x'1'
十六進制值可以被插入到該字段。
非常感謝!
現在我有一個數據庫,其中一個字段類型是一個字節數組。但是將內存轉換爲字節數組?
現在我有一塊內存或一個對象。如何將這段內存或對象轉換爲字節數組,然後將字節數組存儲到數據庫中。
假設對象是
Foo foo
存儲器是
buf (actually, don't know how to declare it yet)
數據庫字段是
byte data[256]
只有像x'1'
十六進制值可以被插入到該字段。
非常感謝!
有兩種方法。
一個很簡單,但有嚴重的侷限性。您可以編寫Foo對象的內存映像。缺點是,如果您更改了編譯器或Foo的結構,那麼您的所有數據可能不再可加載(因爲圖像不再與該對象匹配)。要做到這一點,只需使用
&Foo
作爲字節數組。
另一種方法稱爲'serialization'。如果對象更改 可以使用它,但會增加大量空間來編碼信息。如果你只有256個字節,那麼你需要注意序列化不會產生太大的字符串來保存。
Boost有一個serialization library你可能想看看,雖然你需要小心創建的對象的大小。如果您只使用一小組類來完成此操作,則可能需要自己編寫編組和解組函數。
從文檔:
「在這裏,我們使用術語‘系列化
它可以幫助你’到C++數據結構的任意一組的可逆解構意味着字節序列。」顯示演員... – 2010-08-17 18:44:18