您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> C#怎么用FileStream一行一行的读取文本?

C#怎么用FileStream一行一行的读取文本?

来源:网络整理     时间:2016/6/17 10:17:34     关键词:

关于网友提出的“ C#怎么用FileStream一行一行的读取文本?”问题疑问,本网通过在网上对“ C#怎么用FileStream一行一行的读取文本?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: C#怎么用FileStream一行一行的读取文本?
描述:

我想读取一行文本,然后返回Position下标;  用FIleStream和StreamReader后,返回的下标不标准,所以就希望只用FileStream怎么才能读取一行数据,谢谢.


解决方案1:

引用 9 楼 xuzuning 的回复:
StreamReader.ReadLine

都不知道楼猪搞那么多干嘛,逐行读取文本,不就是ReadLine和ReadAllLines吗,计算那个position有啥意义?非要获得这个值,直接把每行的字符数目累加不就得到了吗。
position,偏移量?那是二进制文件的指针位移才用到吧。 解决方案2:

如果有分行,那么直接File.ReadLine就可以一行行读取,如果没分行,那么应该用byte[]方式来一段段读取

解决方案3:

引用 7 楼 threadroc 的回复:
Quote: 引用 6 楼 shingoscar 的回复:

Quote: 引用 4 楼 threadroc 的回复:

上面这个代码,返回的position是错误的,因为StreamReader的原因,所以不能用StreamReader.

怎么错误了?

谢谢,我试试你说的哪个,
据别人说,StreamReader里有缓存,我理解的意思是,StreamReader会多读取几行,导致position超过你读取的行数了.
实际测貌似就是这样.

确实
那只能用StreamReader.ReadBlock读出一部分数据
找到换行符
然后结合Encoding来计算剩余的字节数就能确定位置了
另外如果文本本来就是utf8或者ascii之类的编码,直接找0xa就行了
以上介绍了“ C#怎么用FileStream一行一行的读取文本?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1727441.html

相关图片

相关文章