XmlWriter.WriteBase64(Byte[], Int32, Int32) Metode

Definisi

Saat ditimpa dalam kelas turunan, mengodekan byte biner yang ditentukan sebagai Base64 dan menulis teks yang dihasilkan.

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

Parameter

buffer
Byte[]

Array byte untuk dikodekan.

index
Int32

Posisi dalam buffer yang menunjukkan awal byte untuk menulis.

count
Int32

Jumlah byte yang akan ditulis.

Pengecualian

buffer adalah null.

index atau count kurang dari nol.

-atau-

Panjang buffer minus index kurang dari count.

Metode XmlWriter dipanggil sebelum operasi asinkron sebelumnya selesai. Dalam hal ini, InvalidOperationException dilemparkan dengan pesan "Operasi asinkron sudah berlangsung."

Contoh

Contoh berikut menggunakan WriteBase64 metode untuk menulis Base64 data. Data Base64 disematkan dalam <image> elemen .


public static void Base64EncodeImageFile() {

  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 Base64 data...");

       do {
          readBytes = br.Read(buffer, 0, bufferSize);
          writer.WriteBase64(buffer, 0, readBytes);
       } while (bufferSize <= readBytes);
       br.Close();
        
    writer.WriteEndElement();// </image>
    writer.WriteEndDocument();
  }
}
Public Shared Sub Base64EncodeImageFile() 
    
    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 Base64 data...")
            
            Do
                readBytes = br.Read(buffer, 0, bufferSize)
                writer.WriteBase64(buffer, 0, readBytes)
            Loop While bufferSize <= readBytes
            br.Close()
        
        writer.WriteEndElement() ' </image>
        writer.WriteEndDocument()

    End Using
 
End Sub

Keterangan

Misalnya, buffer byte mungkin berisi konten biner gambar GIF. Ini jelas tidak akan menjadi XML yang valid. Pengodean Base64 dirancang untuk mewakili urutan byte arbitrer dalam bentuk teks yang terdiri dari 65 karakter US-ASCII ([A-Za-z0-9+/=]) di mana setiap karakter mengodekan 6 bit data biner. Untuk informasi selengkapnya, lihat Permintaan Komentar (RFC) 1521 yang terletak di situs Web Permintaan Komentar.

Untuk versi asinkron dari metode ini, lihat WriteBase64Async.

Berlaku untuk