下班一个小时了,迟迟不愿意回去,不知道在留恋什么,嘿嘿!这次要分享的是:将文件转为字符串和将字符串转为文件的方法,代码如下:
将文件转为字符串的方法:
/// <summary> /// 将传进来的文件转换成字符串 /// </summary> /// <param name="FilePath">待处理的文件路径(本地或服务器)</param> /// <returns></returns> public string FileToBinary(string filePath) { //利用新传来的路径实例化一个FileStream对像 System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read); //得到对象的大小 int fileLength = Convert.ToInt32(fs.Length); //声明一个byte数组 byte[]fileByteArray=new byte[fileLength]; //声明一个读取二进流的BinaryReader对像 System.IO.BinaryReader br = new System.IO.BinaryReader(fs); for (int i = 0; i < fileLength; i++) { //将数据读取出来放在数组中 br.Read(fileByteArray,0,fileLength); } //装数组转换为String字符串 string strData = Convert.ToBase64String(fileByteArray); br.Close(); fs.Close(); return strData; }
将字符串转为文件的方法:
/// <summary> /// 将传进来的字符串保存为文件 /// </summary> /// <param name="path">需要保存的位置路径</param> /// <param name="binary">需要转换的字符串</param> public void BinaryToFile(string path, string binary) { System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write); //利用新传来的路径实例化一个FileStream对像 System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); //实例化一个用于写的BinaryWriter bw.Write(Convert.FromBase64String(binary)); bw.Close(); fs.Close(); }
客户端调用的方法:
private void button3_Click(object sender, EventArgs e) { #region 将文件转化为字符串 string fileStr = FileToBinary(@"C:UserswjhDesktop321.xlsx"); MessageBox.Show(fileStr); #endregion #region 将字符串转为文件 BinaryToFile(@"E:123123.txt", fileStr); #endregion }
从以上的方法可以看出,文件到字符串,字符串再到文件,其实就是文件的复制,但是,将文件转为字符串后,可以讲文件暂时以字符串保存起来,以后用到的时候可以再将字符串转为文件。注意,转换的过程中,必须是同样类型的文件,即:world文件只能转换为world文件,Excel文件只能转换为Excel文件!否则转换会出错!