首页 > 解决方案 > 替换文件中的文本,但速度更快

问题描述

所以我制作了一个数学问题程序,它基本上从文本文件中读取一个数字(只有该文本文件中的数字),如果数字不是解决方案,则将其替换为数字+1。现在的问题是,如果我只在下一行使用

sw.WriteLine(text);

这使得计算非常快,在几秒钟内完成了 100k+ 个数字,但它只是将数字添加到文本文件中而不删除之前的。

或者我用

 string[] lines = File.ReadAllLines("numbers.txt");
 foreach (string line in lines)
 {
      lines[0] = Convert.ToString(biginta);
 }                     
            File.WriteAllLines("numbers.txt", lines);
            

但这使我的程序运行速度相当慢。

有没有办法可以使用已经打开的文件流替换 .txt 文件中的文本?

我是 C# 新手,所以我的整个程序基本上是代码的科学怪人。

标签: c#stringfilestream

解决方案


我正在使用一个文件来存储运行所需的下一个数字,因为我在一夜之间关闭了我的电脑。

老实说,最快的解决方案如下:读取文件一次,进行几次(如 100 次)计算而不保存,然后将当前数字存储回文件中。调整间隔,以便您每 5 秒左右存储一次当前状态。

这仍然为您提供了一个很好的起点(最多丢失 5 秒的工作),但也将磁盘 IO 减少到不再减慢计算速度的程度。


推荐阅读