【发布时间】:2018-11-14 18:08:28
【问题描述】:
场景:
- 我得到了一个包含 10 行文本的 .txt 文件。
- 我有两个 Streamreader(reader1、reader2)。
- 我希望 reader1 阅读第 1-6 行
- 之后我希望 reader2 阅读第 7-10 行
因此我需要获取 reader1 的最后一个位置,并且我必须在相同位置加一开始 reader2。
Streamreader 可以做到这一点吗?是否有任何“位置”、索引或类似的东西可以帮助我浏览 .txt 文件。
【问题讨论】:
-
这听起来像是一个 XY 问题...您要在这里实现的更大场景是什么?
-
你总是可以做
var firstPart = File.ReadLines(filePath).Take(6); var secondPart = File.ReadLines(filePath).Skip(6).Take(4);,但是先把10个都拿走然后把它们分开会更有效。 -
不是一个好方法。解析文本文件有很多更好的方法。
-
就像@RufusL,我很好奇你为什么要这样做。但是,如果您在
Stream上构建您的StreamReader(或使用BaseStream属性提取底层流),您应该能够在该流上玩位置游戏。但不能保证它会起作用。 -
这是一个糟糕的方法,我认为它完全没有用。您应该使用一个 StreamReader 线性读取文件。
标签: c# indexing stream position streamreader