DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

Base64形式の文字列に変換する、Base64形式の文字列を復元する

バイト型配列からBase64文字列に変換する

バイト型配列からBase64形式の文字列にエンコードするには、ConvertクラスのToBase64Stringメソッドを使います。

下の例では、まずinFileNameで指定されたファイルを読み込んでその内容をBase64形式の文字列にして出力しています。なお、「Convert.ToBase64String メソッド」にも同じような例がありますので、そちらも参考にしてください。

VB.NET
コードを隠すコードを選択
'Base64で文字列に変換するファイル
Dim inFileName As String = "C:\test.zip"
Dim inFile As System.IO.FileStream
Dim bs() As Byte

'ファイルをbyte型配列としてすべて読み込む
inFile = New System.IO.FileStream(inFileName, _
    System.IO.FileMode.Open, System.IO.FileAccess.Read)
ReDim bs(inFile.Length - 1)
Dim readBytes As Long = inFile.Read(bs, 0, inFile.Length)
inFile.Close()

'Base64で文字列に変換
Dim base64String As String
base64String = System.Convert.ToBase64String(bs)

'結果を表示
Console.WriteLine(base64String)
C#
コードを隠すコードを選択
//Base64で文字列に変換するファイル
string inFileName = @"C:\test.zip";
System.IO.FileStream inFile;
byte [] bs;

//ファイルをbyte型配列としてすべて読み込む
inFile = new System.IO.FileStream(inFileName,
    System.IO.FileMode.Open, System.IO.FileAccess.Read);
bs = new byte [inFile.Length];
int readBytes = inFile.Read(bs, 0, (int) inFile.Length);
inFile.Close();

//Base64で文字列に変換
string base64String;
base64String = System.Convert.ToBase64String(bs);

//結果を表示
Console.WriteLine(base64String);

Base64文字列からバイト型配列に変換する

逆にデコードするには、FromBase64Stringメソッドを使います。下の例では、TextBox1に入力されたBase64形式の文字列をoutFileNameで指定されたファイルに書き出します。

VB.NET
コードを隠すコードを選択
'Base64でバイト型配列に戻す文字列
Dim s As String = TextBox1.Text

'バイト型配列に戻す
Dim bs() As Byte = System.Convert.FromBase64String(s)

'ファイルに保存する
'保存するファイル名
Dim outFileName As String = "C:\test.dat"
'ファイルに書き込む
Dim outFile As New System.IO.FileStream(outFileName, _
    System.IO.FileMode.Create, System.IO.FileAccess.Write)
outFile.Write(bs, 0, bs.Length)
outFile.Close()
C#
コードを隠すコードを選択
//Base64でバイト型配列に戻す文字列
string s = TextBox1.Text;

//バイト型配列に戻す
byte [] bs = System.Convert.FromBase64String(s);

//ファイルに保存する
//保存するファイル名
string outFileName = @"C:\test.dat";
//ファイルに書き込む
System.IO.FileStream outFile = new System.IO.FileStream(outFileName,
    System.IO.FileMode.Create, System.IO.FileAccess.Write);
outFile.Write(bs, 0, bs.Length);
outFile.Close();

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。