如何在使用StreamReader时指定在文件中开始阅读的位置?
我创建了一个streamreader对象以及一个文件流对象。创建两个对象后,如何控制StreamReader从文件开始读取的位置?
假设文件的内容如下,
// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name
我如何控制流读取器来读取让我们说#2?另外,我怎么能控制在哪里使它停止读取类似#5的分隔符?
编辑:通过分隔符我的意思是,一种使StreamReader从('2。')开始读取的方法
答案 0 :(得分:1)
如果文件包含新的行分隔符,您可以使用ReadLine一次读取一行。
因此,要从第2行开始阅读,您将读取第一行并丢弃,然后读取第5行直到第5行。
答案 1 :(得分:1)
您是否尝试将文件反序列化为某些内存中对象?如果是这样,您可能只想使用ReadLine
或类似的东西解析整个文件,存储每一行,然后通过KeyValuePair<int, string>
等数据结构访问它。
更新:好的...有了新信息,我认为你有两种选择。如果您在查找匹配项之前一直在阅读,可以Peek()
,检查该字符是否是您要查找的字符,然后Read()
。或者,如果您正在寻找一个固定位置,您可以简单地Read()
多个字符并丢弃返回值。
如果您正在寻找复杂的分隔符,您可以将整行或甚至整个文件读入内存并使用Regular Expressions。
希望有帮助...
答案 2 :(得分:0)
如果内容只是纯文本,那么你应该使用StreamReader的ReadLine方法。
http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx
-Oisin