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

정의

파생 클래스에서 재정의되면 지정된 이진 바이트를 Base64로 인코딩하고 결과 텍스트를 작성합니다.When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the resulting text.

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)

매개 변수

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.

예외

index 또는 count가 0보다 작습니다.index or count is less than zero.

또는-or- 버퍼 길이에서 index를 빼면 count보다 작습니다.The buffer length minus index is less than count.

이전 비동기 작업이 완료되기 전에 XmlWriter 메서드가 호출되었습니다.An XmlWriter method was called before a previous asynchronous operation finished. 이 경우 “비동기 작업이 이미 진행 중입니다.” 메시지를 나타내며 InvalidOperationException이 throw됩니다.In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

예제

다음 예제에서는 합니다 WriteBase64 메서드를 Base64 데이터입니다.The following example uses the WriteBase64 method to write Base64 data. Base64 내에 포함 된 데이터는 <image> 요소입니다.The Base64 data is embedded within an <image> element.


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 'Base64EncodeImageFile

설명

예를 들어, 바이트 버퍼 GIF 이미지의 이진 콘텐츠를 포함할 수 있습니다.For example, the byte buffer may contain the binary contents of a GIF image. 명확 하 게 하지 않는 것이 올바른 XML입니다.This clearly would not be valid XML. Base64 65 US-ASCII 문자 구성 텍스트 형태로 임의 바이트 시퀀스를 나타내도록은 인코딩 ([z0-9 + =])는 각 문자 이진 데이터의 6 비트를 인코딩합니다.The Base64 encoding is designed to represent arbitrary byte sequences in a text form comprised of the 65 US-ASCII characters ([A-Za-z0-9+/=]) where each character encodes 6 bits of the binary data. 자세한 내용은 참조 요청에 대 한 주석 (RFC)에 있는 1521 합니다 의견 웹 사이트에 대 한 요청합니다.For more information, see Requests for Comments (RFC) 1521 located on the Request for Comments Web site.

이 메서드의 비동기 버전을 참조 하세요. WriteBase64Async합니다.For the asynchronous version of this method, see WriteBase64Async.

적용 대상