所以我有一个大的$price = (wc_price($selectedShipping->cost)*1.15);
文件,我想阅读并采取特定的块(大约30行)。
这个块在我的文本文件中存在很多次,我想拿最后一个。
所以这就是我的尝试:
Text
此while (true)
{
Thread.Sleep(30000);
string text = File.ReadAllText(@"c:\file.txt");
string table = string.Join("", text.Substring(text.LastIndexOf("My Statistics:"))
.Split(new[] { '\n' })
.Take(24)
.Select(i => i.ToString())
.ToArray());
File.WriteAllText(@"last.txt", table);
}
文件每20秒更改一次,因此我使用while循环执行此操作,我需要在新Text
文件中写入最后一个块。
这里的问题是,在第一次(工作正常)之后我收到了一个错误:Text
修改
我尝试了另一种方法并逐行阅读,但结果是一样的。
答案 0 :(得分:0)
使用StreamWriter将生成的每一行直接写入文本文件。这样可以避免首先将整个长文件存储在内存中。
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\Somewhere\\whatever.txt"))
{
//Generate all the single lines and write them directly into the file
for (int i = 0; i<=10000;i++)
{
sw.WriteLine("This is is : " + i.ToString());
}
}