可能的重复:
如何在C#中使用迭代器反向读取文本文件
我想知道是否有一种方法可以从下到上读取文本文件而不会造成任何性能损失,即 readLine、movenext 方法,但相反,这种事情在 .net 中可能吗?
为了让事情变得更有趣,文本文件中有大约 100 000 行,所以我不能用 readall、reverse 来作弊......
更多细节:我有一个传入字符串值的集合,其前缀为可排序的 int ID。不幸的是我得到这些ID的顺序是错误的。主要问题是字符串值的数量庞大,并且解决方案中没有 RDBMS。所以我真的需要一种方法来存储字符串值,然后在处理过程中反转存储的顺序。我想到了文本文件,因为目前我没有更好的解决方案。
提前致谢。
为什么不使用ReadToEnd()
StreamReader 类的方法,然后向后工作......
诚然,它并不漂亮,但它有效,我使用了一个字节数组来创建一个MemoryStream
实例及其用途StreamReader
例如,使用指针 hocus-pocus,以向后的方式读取数据。
unsafe
{
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes("Hello World! Foo wuz ere and so wuz bar");
using (MemoryStream mStream = new MemoryStream(b))
{
string readStr;
using (StreamReader sr = new StreamReader(mStream))
{
readStr = sr.ReadToEnd();
}
Console.WriteLine(readStr);
fixed (char* beg = readStr)
{
char* p = beg + readStr.Length;
while (p-- != beg)
{
Console.Write(*p);
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)