Эквивалент Java "ByteBuffer.putType ()" в C # - PullRequest
3 голосов
/ 11 августа 2009

Я пытаюсь отформатировать байтовый массив в C # путем переноса кода из Java. В Java используются методы "buf.putInt (value);", buf.putShort, buf.putDouble, (и т. Д.). Однако я не знаю, как перенести это на C #. Я пробовал класс MemoryStream, но нет способа поместить определенный тип в конец байтового массива.

Вопрос: Что эквивалентно Java "ByteBuffer.putType (value)" в C #? Спасибо!

Ответы [ 3 ]

8 голосов
/ 11 августа 2009

Вы можете использовать BinaryWriter и ваш MemoryStream:

MemoryStream stream = new MemoryStream();
using (BinaryWriter writer = new BinaryWriter(stream))
{
    writer.Write(myByte);
    writer.Write(myInt32);
    writer.Write("Hello");
}

byte[] bytes = stream.ToArray();
5 голосов
/ 11 августа 2009

Попробуйте BinaryWriter класс:

using (var binaryWriter = new BinaryWriter(...))
{
    binaryWriter.Write(323);
    binaryWriter.Write(3487d);
    binaryWriter.Write("Hello");
}
0 голосов
/ 11 августа 2009

Вы захотите использовать класс BitConverter. Основное отличие состоит в том, что эти методы возвращают массив байтов вместо изменения существующего массива.

(Это замена для конкретных упомянутых методов; для замены всего класса ByteBuffer см. Другие ответы.)

...