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

 我来答
agile0201
推荐于2018-05-14 · 超过11用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:37.2万
展开全部
方法一:这种方法通用,可把文本文件转成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);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茂昂2N
2011-07-28 · TA获得超过126个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:150万
展开全部
给你个完整的例子:
//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;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a8a6c6a
2011-07-28 · TA获得超过305个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:283万
展开全部
System.IO.StreamReader System.IO.StreamWriter
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式