如何获取指定长度的文件流

tommir3 2009-12-23 07:41:07
现在我就想获取文件中的前100个bte,我现在的做法是把文件全都读了出来,然后获取前100个byte......
我用BinaryWriter类写入文件流,BinaryReader类读。
FilesStream fs = new FileStream(//省略一些参数);
BinaryReader br = new BinaryReader(fs);
while(fs.Length > fs.Position)
{
//进行的读取
}
问题是fs的指向当前流每次移动是一个byte吗?
如果是,是不是可以写成
while(fs.Positin > 100)
{
//我要读取的前100个byte
}
学的不太扎实,请大家多多指点。帮给解释下....
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
特别 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tommir3 的回复:]
谢谢.......那能告诉下
  while(fs.Positin > 100)
    {
        //我要读取的前100个byte
    }
这个每次移动的大小是怎么移动的呢?
[/Quote]
你针对流进行读写的时候,会自动移动指针
要不然可以使用Seek方法进行移动
具体用法参考MSDN
十八道胡同 2009-12-23
  • 打赏
  • 举报
回复
wuyi8808 好代码
看来自己对c#类库还是不是十分的了解
tianliang1 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyi8808 的回复:]
C# codeFilesStream fs=new FileStream(/*省略一些参数*/);
BinaryReader br=new BinaryReader(fs);byte[] bs= br.ReadBytes(100);// 这就是你要的前100个byte
[/Quote]
这种方法真是经典。。。
tommir3 2009-12-23
  • 打赏
  • 举报
回复
谢谢.......那能告诉下
while(fs.Positin > 100)
{
//我要读取的前100个byte
}
这个每次移动的大小是怎么移动的呢?
wuyi8808 2009-12-23
  • 打赏
  • 举报
回复
FilesStream fs = new FileStream(/*省略一些参数*/); 
BinaryReader br = new BinaryReader(fs);
byte[] bs = br.ReadBytes(100); // 这就是你要的前100个byte
tommir3 2009-12-23
  • 打赏
  • 举报
回复
...谢谢帮顶
这个问题怎么也没人啊.......

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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