XmlWriter.WriteBase64(Byte[], Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスでオーバーライドされると、指定したバイナリ バイトを Base64 としてエンコードし、その結果生成されるテキストを書き込みます。
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[]
エンコードするバイト配列。
- index
- Int32
書き込むバイトの開始を示すバッファー内の位置。
- count
- Int32
書き込むバイト数。
例外
buffer
が null
です。
先行の非同期操作が完了する前に、XmlWriter メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。
例
次の例では、 メソッドを WriteBase64 使用してデータを書き込 Base64
みます。 データは Base64
要素内に <image>
埋め込まれます。
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
注釈
たとえば、バイト バッファーには GIF イメージのバイナリ コンテンツが含まれている場合があります。 これは明らかに有効な XML ではないでしょう。 エンコードは Base64
、各文字がバイナリ データの 6 ビットをエンコードする 65 個の US-ASCII 文字 ([A-Za-z0-9+/=]) で構成されるテキスト形式の任意のバイト シーケンスを表すように設計されています。 詳細については、「Requests for Comments (RFC) 1521」を参照してください。
このメソッドの非同期バージョンについては、「」を参照してください WriteBase64Async。
適用対象
.NET