操作文件时提示无法在流的结尾之外进行读取

jiangnan0524 2011-02-14 08:45:39
//首先定义文件流,打开文件1.txt
FileStream fs=new FileStream(Server.MapPath("1.txt"),FileMode.OpenOrCreate);
//将文件流fs作为BinaryReader引用的实例
BinaryReader br=new BinaryReader(fs);
//进行读取操作
br.ReadString();

这个是我临时编写出来的,不打算对读取操作进行任何复制操作从而显示,只是为了测试能否通过编译。
但是系统提示无法在流的结尾之外进行读取,于是我猜测可能是由于文件读取之后的当前位置处于末尾

然后我在br.ReadString();之前加了这么一句,br.BaseStream.Seek(0,SeekOrigin.Begin);
然后又提示:字节太多,应为 7 位编码的 Int32。

这应该如何解决呢?顺便帮忙说下原因,谢谢~
...全文
2884 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2011-02-17
  • 打赏
  • 举报
回复
sr.BaseStream.seek(0,SeekOrigin.Begin)中的第二个参数表示定位,SeekOrigin.Begin表示文件的开头,SeekOrigin.End表示文件的结尾,第一个参数表示偏移量,将指针指向第0个字节
jiangnan0524 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fengyarongaa 的回复:]

好像大小有默认的限制吧
[/Quote]
不太懂什么意思
jiangnan0524 2011-02-16
  • 打赏
  • 举报
回复
SeekOrigin.Begin
超过了流的大小
为什么超过了流的大小?

还有为什么要用StreamRead呢,如果用BinaryReader如何实现呢?
大家都来说说把
ycproc 2011-02-16
  • 打赏
  • 举报
回复
好像大小有默认的限制吧
jiangnan0524 2011-02-16
  • 打赏
  • 举报
回复
有没有大哥来讲解下啊
jiangnan0524 2011-02-16
  • 打赏
  • 举报
回复
没有大哥前来详细的指点一下吗?
wuyq11 2011-02-14
  • 打赏
  • 举报
回复
SeekOrigin.Begin
超过了流的大小
using(FileStream fs = new FileStream(strFile, FileMode.Open, FileAccess.Read))
{
StreamReader sr= new StreamReader(fs);
sr.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine = sr.ReadLine();
while (strLine != null)
{
strLine = sr.ReadLine();
}
sr.Close();
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧