找回密码
 注册会员
查看: 578|回复: 0

关于C#中读写文件的问题

[复制链接]
发表于 2010-5-17 13:41:56 | 显示全部楼层 |阅读模式
<p>关于C#中读写文件的问题</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:20 -</p>
<p>解决时间:2010-5-17 13:40</p>
<p>在C#2003中如果写文件写了100个字节,读文件的时候读了101个字节,那么程序会报错出现异常。但是在c#2005中,如果写文件写了50个字节,读文件的时候读了100000个字节,程序继续执行不会出现异常,但是我读了一个很大的数字(没有计算具体是多少,是实际程序需要的数据)这时候程序发生了异常,报错说是读到了文件末尾。请教大家2005中读写文件是如何执行的?</p>
<p>问题补充:</p>
<p>我读的是二进制文件,由于内容很多(就像存入数据库一样而且还要有预留),没法计算到底我写了多少字节。</p>
<p>提问者: dongyuqian_0 - 三级</p>
<p>最佳答案</p>
<p>#region method</p>
<p>/// <summary></p>
<p>/// 读取文件内容</p>
<p>/// </summary></p>
<p>/// <param name="strFilePath">文件路径,包括文件名</param></p>
<p>/// <returns></returns></p>
<p>public static byte[] ReadFile(string strFilePath)</p>
<p>{</p>
<p>if (strFilePath.Length <= 0) return string.Empty;</p>
<p>if (!File.Exists(strFilePath))</p>
<p>return "文件不存在,请确认!";</p>
<p>FileStream fs = File.OpenRead(strFilePath);</p>
<p>//FileStream fs = FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);</p>
<p>byte[] data = new byte[fs.Length];</p>
<p>try</p>
<p>{</p>
<p>fs.Read(data, 0, data.Length);</p>
<p>}</p>
<p>catch</p>
<p>{</p>
<p>throw;</p>
<p>}</p>
<p>finally</p>
<p>{</p>
<p>fs.Close();</p>
<p>}</p>
<p>return data;</p>
<p>}</p>
<p>#endregion</p>
<p>也可以用流的方式来读取,代码如下:</p>
<p>StreamReader sr = new StreamReader(filePath);</p>
<p>String txtStr = sr.ReadToEnd();</p>
<p>0</p>
<p>回答者:</p>
<p>匿名 2010-5-5 08:44</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>回答的虽然不是我想问的问题,但是也学习这个答案了,O(∩_∩)O谢谢!</p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-21 04:09

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表