2013-02-27 79 views
1

以下我試圖讓Java序列化文本文件存儲在亞馬遜與c#反序列化對象之間進行某種形式的比較。我的想法是將Java中的帶符號字節轉換爲.net中的無符號字節!但不幸的是它不工作!它有效的想法?我怎麼能解決這個問題?將java字節轉換爲c#字節(序列化問題)

using (Stream amazonStream = getObjRespone.ResponseStream) 
{ 
    List<sbyte> buffer = new List<sbyte>(); 
    int onebyte = 0; 
    while (onebyte != -1) 
    { 
     onebyte = amazonStream.ReadByte(); 
     if (onebyte != -1) 
      buffer.Add((sbyte)onebyte); 
    } 
    byte[] dest = Array.ConvertAll(buffer.ToArray(), item => (byte)item); 
    Stream stream = new MemoryStream(dest); 
    object obj= binaryFormatter.Deserialize(stream); 
    //byte[] b= (byte[]) buf.ToArray(); 
} 
+0

跨平臺系列化???算了吧!字節的符號在這裏毫無意義。 – 2013-02-27 14:58:26

+0

具體來說,哪些不起作用?你看到的是什麼,表明它不起作用。 – 2013-02-27 15:00:48

+0

我不確定這與標準的序列化方法有多可能,但我已經完成了手工序列化,然後構建存儲系統並使用RandomAccessFile類寫入文件,然後從中讀取並重建。 – 2013-02-27 15:00:49

回答

2

使用protobuf用於此目的,或者其它一些跨平臺serilization(XML,JSON)

+1

我正要發佈這個。 Protobuf和Protobuf-net應該很好地滿足他的目的。 – 2013-02-27 15:00:18

+0

是的這是有效的,如果我使用這種格式(Java,C#),但我已經使用Java序列化沒有標準格式的序列化數據! – 2013-02-28 06:31:08