8 ビット符号なし整数の配列を等価の base 64 の数字で構成される Unicode 文字配列サブセットへ変換します。パラメータにより、入力配列および出力配列のオフセットとしてのサブセットと、変換する入力配列の要素の数が指定されます。
Public Shared Function ToBase64CharArray( _
ByVal inArray() As Byte, _ ByVal offsetIn As Integer, _ ByVal length As Integer, _ ByVal outArray() As Char, _ ByVal offsetOut As Integer _) As Integer
[C#]
public static int ToBase64CharArray(byte[] inArray,intoffsetIn,intlength,char[] outArray,intoffsetOut);
[C++]
public: static int ToBase64CharArray(unsigned charinArray __gc[],intoffsetIn,intlength,__wchar_toutArray __gc[],intoffsetOut);
[JScript]
public static function ToBase64CharArray(
inArray : Byte[],offsetIn : int,length : int,outArray : Char[],offsetOut : int) : int;
パラメータ
- inArray
8 ビット符号なし整数で構成される入力配列。 - offsetIn
inArray 内での位置。 - length
変換する inArray の要素の数。 - outArray
Unicode 文字の出力配列。 - offsetOut
outArray 内での位置。
戻り値
outArray のバイト数が格納された 32 ビット符号付き整数。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | inArray または outArray が null 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException | offsetIn 、 offsetOut, 、または length が負の値です。
または offsetIn と length を合計した値が、 inArray の長さを超えています。 または offsetOut と、返される要素の数を合計した値が、 outArray の長さを超えています。 |
解説
offsetIn の位置から開始する inArray の length 要素のサブセットが数値として解釈され、 offsetOut の位置から開始する outArray の要素のサブセットへ変換されます。戻り値は、 outArray の変換後の要素数を示します。 outArray のサブセットは base 64 の数字で構成されます。
Base64 形式の文字を 0 から昇順で並べると、大文字の 'A' ~ 'Z'、小文字の 'a' ~ 'z'、数字の '0' ~ '9'、および '+' と '/' の記号になります。値として解釈されない文字 '=' は、文字列末尾の埋め込み用に使用されます。
offset と length は、32 ビット符号付き整数です。 offsetIn と offsetOut は、0 から始まる配列の位置です。
使用例
[Visual Basic, C#, C++] ToBase64CharArray メソッドを使用して、バイナリ ストリームの UU エンコード (base 64 エンコード) を行い、ファイルに保存する方法を次の例に示します。
Public Sub EncodeWithCharArray()
Dim inFile As System.IO.FileStream
Dim binaryData() As Byte
Try
inFile = New System.IO.FileStream(inputFileName, _
System.IO.FileMode.Open, _
System.IO.FileAccess.Read)
ReDim binaryData(inFile.Length)
Dim bytesRead As Long = inFile.Read(binaryData, _
0, _
CInt(inFile.Length))
inFile.Close()
Catch exp As System.Exception
' Error creating stream or reading from it.
System.Console.WriteLine("{0}", exp.Message)
Return
End Try
' Convert the binary input into Base64 UUEncoded output.
' Each 3 byte sequence in the source data becomes a 4 byte
' sequence in the character array.
Dim arrayLength As Long
arrayLength = (4 / 3) * binaryData.Length
If arrayLength Mod 4 <> 0 Then
arrayLength = arrayLength + 4 - arrayLength Mod 4
End If
Dim base64CharArray(arrayLength - 1) As Char
Try
System.Convert.ToBase64CharArray(binaryData, _
0, _
binaryData.Length, _
base64CharArray, 0)
Catch exp As System.ArgumentNullException
System.Console.WriteLine("Binary data array is null.")
Return
Catch exp As System.ArgumentOutOfRangeException
System.Console.WriteLine("Char Array is not large enough.")
Return
End Try
' Write the UUEncoded version to the output file.
Dim outFile As System.IO.StreamWriter
Try
outFile = New System.IO.StreamWriter(outputFileName, _
False, _
System.Text.Encoding.ASCII)
outFile.Write(base64CharArray)
outFile.Close()
Catch exp As System.Exception
' Error creating stream or writing to it.
System.Console.WriteLine("{0}", exp.Message)
End Try
End Sub
[C#]
public void EncodeWithCharArray() {
System.IO.FileStream inFile;
byte[] binaryData;
try {
inFile = new System.IO.FileStream(inputFileName,
System.IO.FileMode.Open,
System.IO.FileAccess.Read);
binaryData = new Byte[inFile.Length];
long bytesRead = inFile.Read(binaryData, 0,
(int) inFile.Length);
inFile.Close();
}
catch (System.Exception exp) {
// Error creating stream or reading from it.
System.Console.WriteLine("{0}", exp.Message);
return;
}
// Convert the binary input into Base64 UUEncoded output.
// Each 3 byte sequence in the source data becomes a 4 byte
// sequence in the character array.
long arrayLength = (long) ((4.0d/3.0d) * binaryData.Length);
// If array length is not divisible by 4, go up to the next
// multiple of 4.
if (arrayLength % 4 != 0) {
arrayLength += 4 - arrayLength % 4;
}
char[] base64CharArray = new char[arrayLength];
try {
System.Convert.ToBase64CharArray(binaryData,
0,
binaryData.Length,
base64CharArray,
0);
}
catch (System.ArgumentNullException) {
System.Console.WriteLine("Binary data array is null.");
return;
}
catch (System.ArgumentOutOfRangeException) {
System.Console.WriteLine("Char Array is not large enough.");
return;
}
// Write the UUEncoded version to the output file.
System.IO.StreamWriter outFile;
try {
outFile = new System.IO.StreamWriter(outputFileName,
false,
System.Text.Encoding.ASCII);
outFile.Write(base64CharArray);
outFile.Close();
}
catch (System.Exception exp) {
// Error creating stream or writing to it.
System.Console.WriteLine("{0}", exp.Message);
}
}
[C++]
public:
void EncodeWithCharArray() {
FileStream* inFile;
Byte binaryData[];
try {
inFile = new FileStream(inputFileName,
FileMode::Open,
FileAccess::Read);
binaryData = new Byte[(int)(inFile->Length)];
long bytesRead = inFile->Read(binaryData, 0,
(int) inFile->Length);
inFile->Close();
} catch (Exception* exp) {
// Error creating stream or reading from it.
Console::WriteLine(S" {0}", exp->Message);
return;
}
// Convert the binary input into Base64 UUEncoded output.
// Each 3 Byte sequence in the source data becomes a 4 Byte
// sequence in the character array.
long arrayLength = (long) ((4.0/3.0) * binaryData->Length);
// If array length is not divisible by 4, go up to the next
// multiple of 4.
if (arrayLength % 4 != 0) {
arrayLength += 4 - arrayLength % 4;
}
Char base64CharArray[] = new Char[arrayLength];
try {
Convert::ToBase64CharArray(binaryData,
0,
binaryData->Length,
base64CharArray,
0);
} catch (ArgumentNullException*) {
Console::WriteLine(S"Binary data array is null.");
return;
} catch (ArgumentOutOfRangeException*) {
Console::WriteLine(S"Char Array is not large enough.");
return;
}
// Write the UUEncoded version to the output file.
StreamWriter* outFile;
try {
outFile = new StreamWriter(outputFileName,
false,
Text::Encoding::ASCII);
outFile->Write(base64CharArray);
outFile->Close();
} catch (Exception* exp) {
// Error creating stream or writing to it.
Console::WriteLine(S" {0}", exp->Message);
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET