2013-02-27 4 views
1

в следующем примере я попытался сделать какой-то магический обмен между Java serialize текстовым файлом, хранящимся в amazon, на C# deserialize object. моя идея состоит в том, чтобы преобразовать подписанные байты в Java в Unsigned bytes в .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

Межплатформенных сериализации ??? Забудь это! Знак байтов здесь довольно бессмыслен. –

+0

В частности, что не работает? Что вы видите, что указывает на то, что он не работает. –

+0

Я не уверен, насколько это возможно со стандартными методами сериализации, но я уже делал сериализацию вручную, создавая систему хранения и записывая в файл, используя класс RandomAccessFile, а затем читаю и перестраиваю. –

ответ

2

использование protobuf для этой цели, или другой какой-то кросс-платформенной serilization (XML, JSON)

+1

Я как раз собирался опубликовать это. Protobuf и Protobuf-net должны хорошо служить его цели. –

+0

Да, это верно, если я использую этот формат на стороне буксировки (Java, C#), но я уже сериализовал данные, используя сериализацию Java без стандартного формата! –

Смежные вопросы