C#怎么把一个文件转成二进制然后保存

如题所述

第1个回答  推荐于2018-05-14
方法一:这种方法通用,可把文本文件转成byte数组,也可以是图片
byte[] arrFile = null; //先定义一个byte数组
//将指定的文件数据读取到 数组中
using (FileStream fs = new FileStream(path, FileMode.Open)) //path是文件的路径
{
arrFile = new byte[fs.Length];//定义这个byte[]数组的长度 为文件的length
fs.Read(arrFile, 0, arrFile.Length);//把fs文件读入到arrFile数组中,0是指偏移量,从0开始读,arrFile.length是指需要读的长度,也就是整个文件的长度
}

方法二:这种简单,只适合于把文本文件转成二进制
string fileText = File.ReadAllText(path);
byte[] arrByteFile = Encoding.UTF8.GetBytes(fileText);本回答被提问者和网友采纳
第2个回答  2011-07-28
给你个完整的例子:
//Picture 是图纸对象,fileNamePath 是文件的地质

public Picture upPic(Picture pic, string fileNamePath)
{
bool flag = File.Exists(fileNamePath);
if(flag)
{

FileInfo inf;
FileStream fs = null;
SqlConnection conn = new SqlConnection("连接数据库的字符串");

conn.Open();
inf = new FileInfo(fileNamePath);
fs = inf.OpenRead();
//将图纸转换为二进制的数据
Byte[] byss = new byte[fs.Length];

fs.Position = 0;
fs.Read(byss, 0, Convert.ToInt32(fs.Length));

StringBuilder sb = new StringBuilder(" ");
// sql语句想数据库里面插入
sb.Append("insert into tab_PicInfo values('");
sb.Append(pic.PicName).Append("','");
sb.Append(pic.ProjectId).Append("','");
sb.Append(pic.ProjectName).Append("','");
sb.Append(pic.DesignDepartName).Append("','");
sb.Append(pic.PicTypeId).Append("','");
sb.Append(pic.PicAirProperty).Append("','");
sb.Append(pic.PicProperty).Append("','");
sb.Append(pic.Scale).Append("','");
sb.Append(pic.MakePic).Append("','");
sb.Append(pic.TracingPic).Append("','");
sb.Append(pic.ZuExamine).Append("','");
sb.Append(pic.Examine).Append("','");
sb.Append(pic.ZongGongBan).Append("','");
sb.Append(pic.TechnologyMineDirector).Append("','");
sb.Append(pic.DesignPhase).Append("','");
sb.Append(pic.PicId).Append("','");
sb.Append(pic.Specialty).Append("','");
sb.Append(pic.PicCount).Append("','").Append(pic.PicNum).Append("',");
// 注意图纸格式写法不一样
sb.Append("@image").Append(",'");//文件流
sb.Append(pic.PicStandards).Append("','");
sb.Append(pic.DataSource).Append("','");
sb.Append(pic.SaveTime).Append("')'");
SqlCommand cmd = new SqlCommand(sb.ToString(), conn);
// 设置图纸参数
cmd.Parameters.Add("image", SqlDbType.Image);
cmd.Parameters[0].Value = byss;
cmd.ExecuteNonQuery();
pic.Message = "上传成功!";
return pic;
}

else
{
message.Text = "请检查文件是否存在!";
return pic;
}

}
第3个回答  2011-07-28
System.IO.StreamReader System.IO.StreamWriter