Convert.ToBase64CharArray Method (Byte[], Int32, Int32, Char[], Int32)
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Shared Function ToBase64CharArray ( _ inArray As Byte(), _ offsetIn As Integer, _ length As Integer, _ outArray As Char(), _ offsetOut As Integer _ ) As Integer 'Usage Dim inArray As Byte() Dim offsetIn As Integer Dim length As Integer Dim outArray As Char() Dim offsetOut As Integer Dim returnValue As Integer returnValue = Convert.ToBase64CharArray(inArray, offsetIn, length, outArray, offsetOut)
public static int ToBase64CharArray ( byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut )
public static function ToBase64CharArray ( inArray : byte[], offsetIn : int, length : int, outArray : char[], offsetOut : int ) : int
Parameters
- inArray
An input array of 8-bit unsigned integers.
- offsetIn
A position within inArray.
- length
The number of elements of inArray to convert.
- outArray
An output array of Unicode characters.
- offsetOut
A position within outArray.
Return Value
A 32-bit signed integer containing the number of bytes in outArray.The subset of length elements of inArray starting at position offsetIn, are taken as a numeric value and converted to a subset of elements in outArray starting at position offsetOut. The return value indicates the number of converted elements in outArray. The subset of outArray consists of base 64 digits.
The base 64 digits in ascending order from zero are the uppercase characters 'A' to 'Z', the lowercase characters 'a' to 'z', the numerals '0' to '9', and the symbols '+' and '/'. The valueless character, '=', is used for trailing padding.
The offset and length parameters are 32-bit signed numbers. The offsetIn and offsetOut parameters are zero-based array positions.
The following code example demonstrates using the ToBase64CharArray method to UUencode (encode in base 64) a binary stream, then save the encoding to a file.
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
public void EncodeWithCharArray()
{
System.IO.FileStream inFile;
ubyte binaryData[];
try {
inFile = new System.IO.FileStream(inputFileName,
System.IO.FileMode.Open,
System.IO.FileAccess.Read );
binaryData = new ubyte[(int)inFile.get_Length()];
long bytesRead = inFile.Read(binaryData, 0,
(int)(inFile.get_Length()));
inFile.Close();
}
catch (System.Exception exp) {
// Error creating stream or reading from it.
System.Console.WriteLine("{0}", exp.get_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[(int)arrayLength];
try {
System.Convert.ToBase64CharArray(binaryData, 0, binaryData.length,
base64CharArray, 0);
}
catch (System.ArgumentNullException exp) {
System.Console.WriteLine("Binary data array is null.");
return;
}
catch (System.ArgumentOutOfRangeException exp) {
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.get_ASCII());
outFile.Write(base64CharArray);
outFile.Close();
}
catch (System.Exception exp) {
// Error creating stream or writing to it.
System.Console.WriteLine("{0}", exp.get_Message());
}
} //EncodeWithCharArray
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.