日期:2014-05-17  浏览次数:20817 次

C# 中有没有seek getfileposition 的流
现在读文件, 需要定位开始的位置,读完固定的一段 需要根据特定的条件是否再次循环执行,我想知道C# 有没有类似JAVA RandomAccessFile 的类似,需要按行读取的,并且可以随机位置读取文件,谢谢,其他方案不需要 只想知道有没有这样一个输入流。谢谢。

------解决方案--------------------
没有,只能循环读取
http://www.catchexception.net/QuestionDetail/175/%E9%9A%8F%E6%9C%BA%E8%AF%BB%E5%8F%96%E5%A4%A7%E6%96%87%E4%BB%B6%E4%B8%8B%E7%9A%84%E6%8C%87%E5%AE%9A%E8%A1%8C%E4%BD%8D%E7%BD%AE%E7%9A%84%E5%86%85%E5%AE%B9
------解决方案--------------------
1、按行读取容易:
using(FileStream fs = ...)
using(StreamReader reader = new StreamReader(fs))
{
   fs.Position = 100;
   string s = reader.ReadLine();
}

2、按行定位就不容易了。
除非你知道当前位置,比如100,前面有6行,否则你只能从头扫描。
从头扫描就失去了RandomAccess的意义了。