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

时间:2021-09-22 10:41:19
    现在我就想获取文件中的前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
    }
    学的不太扎实,请大家多多指点。帮给解释下....

7 个解决方案

#1


该回复于2009-12-24 09:10:04被版主删除

#2


...谢谢帮顶
这个问题怎么也没人啊.......

#3


FilesStream fs = new FileStream(/*省略一些参数*/); 
BinaryReader br = new BinaryReader(fs); 
byte[] bs = br.ReadBytes(100);  // 这就是你要的前100个byte

#4


谢谢.......那能告诉下
   while(fs.Positin > 100) 
    { 
        //我要读取的前100个byte 
    } 
这个每次移动的大小是怎么移动的呢?

#5


引用 3 楼 *8808 的回复:
C# codeFilesStream fs=new FileStream(/*省略一些参数*/); 
BinaryReader br=new BinaryReader(fs);byte[] bs= br.ReadBytes(100);// 这就是你要的前100个byte

这种方法真是经典。。。

#6


*8808  好代码
看来自己对c#类库还是不是十分的了解

#7


引用 4 楼 tommir3 的回复:
谢谢.......那能告诉下
    while(fs.Positin > 100)
     {
         //我要读取的前100个byte
     }
 这个每次移动的大小是怎么移动的呢?

你针对流进行读写的时候,会自动移动指针
要不然可以使用Seek方法进行移动
具体用法参考MSDN

#1


该回复于2009-12-24 09:10:04被版主删除

#2


...谢谢帮顶
这个问题怎么也没人啊.......

#3


FilesStream fs = new FileStream(/*省略一些参数*/); 
BinaryReader br = new BinaryReader(fs); 
byte[] bs = br.ReadBytes(100);  // 这就是你要的前100个byte

#4


谢谢.......那能告诉下
   while(fs.Positin > 100) 
    { 
        //我要读取的前100个byte 
    } 
这个每次移动的大小是怎么移动的呢?

#5


引用 3 楼 *8808 的回复:
C# codeFilesStream fs=new FileStream(/*省略一些参数*/); 
BinaryReader br=new BinaryReader(fs);byte[] bs= br.ReadBytes(100);// 这就是你要的前100个byte

这种方法真是经典。。。

#6


*8808  好代码
看来自己对c#类库还是不是十分的了解

#7


引用 4 楼 tommir3 的回复:
谢谢.......那能告诉下
    while(fs.Positin > 100)
     {
         //我要读取的前100个byte
     }
 这个每次移动的大小是怎么移动的呢?

你针对流进行读写的时候,会自动移动指针
要不然可以使用Seek方法进行移动
具体用法参考MSDN