c# - 替换文件中的文本,但速度更快
问题描述
所以我制作了一个数学问题程序,它基本上从文本文件中读取一个数字(只有该文本文件中的数字),如果数字不是解决方案,则将其替换为数字+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# 新手,所以我的整个程序基本上是代码的科学怪人。
解决方案
我正在使用一个文件来存储运行所需的下一个数字,因为我在一夜之间关闭了我的电脑。
老实说,最快的解决方案如下:读取文件一次,进行几次(如 100 次)计算而不保存,然后将当前数字存储回文件中。调整间隔,以便您每 5 秒左右存储一次当前状态。
这仍然为您提供了一个很好的起点(最多丢失 5 秒的工作),但也将磁盘 IO 减少到不再减慢计算速度的程度。
推荐阅读
- ios - Xcode 中大约 100 个错误,未定义符号。在我的统一项目中
- google-cloud-sql - 如何从 Google App Maker 连接到 Google Cloud SQL 数据库作为外部 mysql 数据库?
- reactjs - React中的预增量运算符?
- django - 如何使用 heroku 将新的 pip 包添加到已部署的应用程序
- javascript - 输入值时,Knockout observable 错误地改变了数学计算的结果
- python - 如何根据坐标更新numpy数组
- stata - 不区分大小写地加载 Excel 文件表
- html - 在另一个矩形中创建一个矩形并定位元素
- django - 如何在 Django 中使用电子邮件登录?
- python-3.x - 自定义损失的梯度