XmlWriter.WriteBinHex(Byte[], Int32, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе преобразует указанный набор двоичных байтов как BinHex
и выводит получившийся текст.
public:
virtual void WriteBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public:
abstract void WriteBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual void WriteBinHex (byte[] buffer, int index, int count);
public abstract void WriteBinHex (byte[] buffer, int index, int count);
abstract member WriteBinHex : byte[] * int * int -> unit
override this.WriteBinHex : byte[] * int * int -> unit
abstract member WriteBinHex : byte[] * int * int -> unit
Public Overridable Sub WriteBinHex (buffer As Byte(), index As Integer, count As Integer)
Public MustOverride Sub WriteBinHex (buffer As Byte(), index As Integer, count As Integer)
Параметры
- buffer
- Byte[]
Кодируемый массив байтов.
- index
- Int32
Позиция в буфере, с которой начинается запись байтов.
- count
- Int32
Количество записываемых байтов.
Исключения
buffer
имеет значение null
.
Средство записи закрыто или находится в состоянии ошибки. -или-
Метод XmlWriter вызван перед завершением предыдущей асинхронной операции. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".
Значение параметра index
или count
меньше нуля.
-или-
Длина буфера минус index
меньше count
.
Примеры
В следующем примере метод используется WriteBinHex для записи BinHex
данных. Данные BinHex
внедряются в <image>
элемент.
public static void BinHexEncodeImageFile() {
int bufferSize = 1000;
byte[] buffer = new byte[bufferSize];
int readBytes = 0;
using (XmlWriter writer = XmlWriter.Create("output.xml")) {
FileStream inputFile = new FileStream(@"C:\artFiles\sunset.jpg", FileMode.OpenOrCreate,
FileAccess.Read, FileShare.Read);
writer.WriteStartDocument();
writer.WriteStartElement("image");
BinaryReader br = new BinaryReader(inputFile);
Console.WriteLine("\r\nWriting BinHex data...");
do {
readBytes = br.Read(buffer, 0, bufferSize);
writer.WriteBinHex(buffer, 0, readBytes);
} while (bufferSize <= readBytes);
br.Close();
writer.WriteEndElement();// </image>
writer.WriteEndDocument();
}
}
Public Shared Sub BinHexEncodeImageFile()
Dim bufferSize As Integer = 1000
Dim buffer(bufferSize) As Byte
Dim readBytes As Integer = 0
Using writer As XmlWriter = XmlWriter.Create("output.xml")
Dim inputFile As New FileStream("C:\artFiles\sunset.jpg", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)
writer.WriteStartDocument()
writer.WriteStartElement("image")
Dim br As New BinaryReader(inputFile)
Console.WriteLine(vbCr + vbLf + "Writing BinHex data...")
Do
readBytes = br.Read(buffer, 0, bufferSize)
writer.WriteBinHex(buffer, 0, readBytes)
Loop While bufferSize <= readBytes
br.Close()
writer.WriteEndElement() ' </image>
writer.WriteEndDocument()
End Using
End Sub
Комментарии
Асинхронная версия этого метода см. в разделе WriteBinHexAsync.