2011-12-07 14 views

Odpowiedz

29
+0

Niestety nadal serializes do strun w języku Java. Ale dzięki za link. –

+8

Nie, zgodnie z dokumentacją odpowiadającym typem Java jest 'ByteString'. Możesz uzyskać samą tablicę bajtów za pomocą metody 'toByteArray'. – JesperE

+0

Jeśli masz już tablicę bajtów [], po prostu użyj LiteralByteString, więc nie musisz jej kopiować. – marios

7

Jeśli szukasz do przechowywania pojedynczy bajt, jednak chciałbym zaproponować pomocą Int32. Jest to zmienna typu "wariant", która zmieni rozmiar w zależności od przechowywanych w nim danych. Więc jeśli przechowujesz pojedynczy bajt, będzie to najmniejsza struktura. Typ danych byteS jest w rzeczywistości dość duży w porównaniu. Dzieje się tak, ponieważ struktura bajtów przechowuje dane, takie jak długość indeksu i inne właściwości.

Podczas serializacji zauważyłem różnicę wielkości około połowy przy zmianie z pojedynczego bajtu przechowywanego w bajcie na int32.

Należy jednak pamiętać, że to niema zastosowania do wielokrotności bajty są przechowywane w bajtach, które podejrzewają, będą znacznie mniejsze niż przechowywanie indywidualny Int32.

3

Klasa ByteString dostarcza metod do konwersji kilka rodzajów rodzaju protobuff „bajty” lub ByteString

public static ByteString CopyFrom(params byte[] bytes); 
public static ByteString CopyFrom(string text, Encoding encoding);