2011-12-07 5 views

Trả lời

29
+0

Đáng tiếc là vẫn serializes thành các chuỗi trong java. Nhưng nhờ các liên kết. –

+8

Không, theo tài liệu, loại Java tương ứng là 'ByteString'. Bạn có thể tự lấy mảng byte bằng phương thức 'toByteArray'. – JesperE

+0

Trong trường hợp bạn đã có mảng byte [] chỉ cần sử dụng LiteralByteString để bạn không phải sao chép nó. – marios

7

Nếu bạn đang tìm kiếm để lưu trữ một byte đơn, tuy nhiên, tôi sẽ đề nghị sử dụng Int32. Nó là biến kiểu 'biến thể' sẽ thay đổi kích thước tùy thuộc vào dữ liệu được lưu trữ trong đó. Vì vậy, nếu bạn đang lưu trữ một byte đơn, nó sẽ là cấu trúc nhỏ nhất. Kiểu dữ liệu byteS thực sự là khá lớn so với. Điều này là do cấu trúc byte chứa dữ liệu như độ dài chỉ mục và các thuộc tính khác.

Khi tuần tự hóa, tôi nhận thấy sự khác biệt về kích thước khoảng một nửa khi chuyển từ một byte đơn được lưu trữ trong byte sang int32.

Lưu ý, tuy nhiên, này không áp dụng đối vớinhiều byte được lưu trữ trong các byte, mà tôi nghi ngờ sẽ nhỏ hơn nhiều so với việc lưu trữ cá nhân Int32.

3

Lớp ByteString cung cấp phương pháp để chuyển đổi một vài loại để loại protobuff "byte" hoặc ByteString

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