次の方法で共有


Convert.ToBase64CharArray メソッド

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 offsetInoffsetOut, 、または 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 ビット符号付き整数です。 offsetInoffsetOut は、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

参照

Convert クラス | Convert メンバ | System 名前空間