using System.IO;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string str=FileToBinary(Server.MapPath("~/1.txt"));
        BinaryToFile(Server.MapPath("~/2.txt"), str);
        Response.Write("'"+str+"'");
    }

    /// <summary>
    /// 分别用BinaryReader得Read和ReadBytes方法将任何文件转换成二进制字符串
    /// </summary>
    /// <param name="FilePath">文件路径</param>
    /// <returns>二进制字符串</returns>
    public static string FileToBinary(string FilePath)
    {
        FileStream fs = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);

        //用ReadBytes方法更简单
        Byte[] FileData = br.ReadBytes((int)fs.Length);
        //用Read方法稍微多点代码
        //Byte[] FileData = new byte[(int)fs.Length];
        //for (int i = 0; i < fs.Length; i++)
        //{
          //  br.Read(FileData, 0, (int)fs.Length);
        //}

        string strData = Convert.ToBase64String(FileData);
        return strData;
    }

    /// <summary>
    /// 将二进制字符串转换为原文件
    /// </summary>
    /// <param name="FilePath">文件路径</param>
    /// <param name="Binary">二进制字符串</param>
    public static void BinaryToFile(string FilePath, string Binary)
    {
        //FileStream fs = new FileStream(FilePath, FileMode.Create, FileAccess.Write);
        FileStream fs = File.Open(FilePath, FileMode.Create, FileAccess.Write);
        BinaryWriter bw = new BinaryWriter(fs);
        bw.Write(Convert.FromBase64String(Binary));
        bw.Close();
        fs.Close();
    }
}