XmlWriter.WriteBinHex(Byte[], Int32, Int32) XmlWriter.WriteBinHex(Byte[], Int32, Int32) XmlWriter.WriteBinHex(Byte[], Int32, Int32) XmlWriter.WriteBinHex(Byte[], Int32, Int32) Method

定義

在衍生類別中覆寫時,以 BinHex 格式編碼指定的二進位位元組,並寫出產生的文字。When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the resulting text.

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

參數

buffer
Byte[]

要編碼的位元組陣列。Byte array to encode.

index
Int32 Int32 Int32 Int32

緩衝區中的位置指示要寫入的位元組開頭。The position in the buffer indicating the start of the bytes to write.

count
Int32 Int32 Int32 Int32

要寫入的位元組數。The number of bytes to write.

例外狀況

寫入器的狀態為關閉或錯誤。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."

indexcount 小於零。index or count is less than zero.

-或--or- 緩衝區長度減去 index 會小於 countThe 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 'BinHexEncodeImageFile

備註

這個方法的非同步版本,請參閱WriteBinHexAsyncFor the asynchronous version of this method, see WriteBinHexAsync.

適用於