[英]Read a BigInteger serialized from Java into C#
我有一個BigInteger
由Java程序使用ObjectOutputStream
的writeObject
方法序列化為文件。
我可以在C#中反序列化嗎? 我嘗試使用vjslib
的java.math
和java.io
類,但是我得到了一個異常:
InvalidClassException該類與cl = java.lang.Number不匹配的持久化對象的類:__SUID = -8742448824652078965,getSUID(cl)= 316698409723521414
有任何想法嗎?
您是否可以控制Java的序列化步驟?
如果是這樣,我建議將字節數組(二進制或base64)序列化,並從序列化結構中讀取字節數組。
然后,您可以將字節數組傳遞給System.Numerics.BigInteger
構造函數。
如果你不介意丑陋的黑客:我會說最簡單的(盡管不是最有效的)方法是在Java端將其寫成ASCII字符串,並在C#端解析該字符串,而不是使用二進制/序列化。
我建議您不要為此使用序列化,因為BigInteger
的兩個版本不兼容-它們具有不同的版本ID。
您應該以其他方式編寫對象,可能使用BigInteger.toByteArray
的字節數組
閱讀此有關序列化的問題可能對您也很有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.