XmlWriter.WriteBinHex(Byte[], Int32, Int32) メソッド

定義

派生クラスでオーバーライドされると、指定されたバイナリ バイトを BinHex としてエンコードし、その結果生成されるテキストを書き込みます。When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the resulting text.

public:
 abstract void WriteBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public abstract void WriteBinHex (byte[] buffer, int index, int count);
abstract member WriteBinHex : byte[] * int * int -> unit
Public MustOverride Sub WriteBinHex (buffer As Byte(), index As Integer, count As Integer)

パラメーター

buffer
Byte[]

エンコードするバイト配列。Byte array to encode.

index
Int32

書き込むバイトの開始を示すバッファー内の位置。The position in the buffer indicating the start of the bytes to write.

count
Int32

書き込むバイト数。The number of bytes to write.

例外

buffernull です。buffer is null.

ライターが閉じているかエラー状態です。The writer is closed or in error state. - または --or-

先行の非同期操作が完了する前に、XmlWriter メソッドが呼び出されました。An XmlWriter method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

index または count が 0 未満です。index or count is less than zero.

- または --or- バッファーの長さから index を引いた値が count 未満です。The buffer length minus index is less than count.

次の例では、WriteBinHex メソッドを使用して BinHex データを書き込みます。The following example uses the WriteBinHex method to write BinHex data. BinHex データは <image> 要素内に埋め込まれます。The BinHex data is embedded within an <image> element.


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」を参照してください。For the asynchronous version of this method, see WriteBinHexAsync.

適用対象