Мне нужно создать файл, в котором некоторые части являются строками (utf-8), а некоторые части - байтами.
Я часами возился с StreamWriter
и BinaryWriter
, но это единственное, что работает:
using (var stream = new FileStream(_caminho, FileMode.Create, FileAccess.Write))
{
using (var writer = new StreamWriter(stream))
{
writer.Write(myString);
}
}
using (var stream = new FileStream(_caminho, FileMode.Append, FileAccess.Write))
{
using (var writer = new BinaryWriter(stream))
{
writer.Write(oneSingleByte);
}
}
Проблема в том, что мне нужно закрыть FileStream и открыть другой только для записи одного байта, потому что либо метод BinaryStream.Write(string)
добавляет поле «длины» (нежелательно в моем случае), либо StreamWriter.Write(byte)
кодирует значение байта вместо того, чтобы писать напрямую .
Мой вопрос: есть ли другой класс, который я могу использовать, чтобы я мог создать FileStream только один раз и записать мою строку и мой байт один за другим?
binaryWriter.Write(myString.ToCharArray());
или как вариантbinaryWriter.Write(Encoding.UTF8.GetBytes(myString))
. - person heltonbiker   schedule 08.04.2015System.Text.Encoding
как CodeCaster, предложенный ниже. - person n0rd   schedule 08.04.2015