[英]Reading and writing to an existing .txt file in C#
初学者在这里,我在读取和写入现有的 .txt 文件时遇到了一些麻烦。 我的总体目标是接收包含方程的字符串(由数字和 +,-,*,/,(,) 运算符指定),通过我构建的计算器运行这些方程(参见计算方法),然后将结果写入同一个文件。 假设我的文件包含以下几行:
1+8
罪(90)+9
然后,我应该写入该文件,所以它看起来像这样:
1+8 = 9
罪(90)+9 = 10
等等。
这是我到目前为止所得到的:
List<string> lines = new List<string>();
List<string> results = new List<string>();
foreach (string line in File.ReadLines(@"C:\Users\...\file.txt"))
{
string result = Calculate(line).ToString();
}
现在我真的不知道该怎么办。 我一直在尝试使用 File.WriteAllLines 和 File.AppendText,但是会抛出错误,并且当前流似乎已被占用。
有什么建议么? 谢谢。
从File.ReadLines
切换到File.ReadAllLines
。
在幕后, ReadLines
使用 Streams 根据您的请求从文件中读取每一行。 但是,为了做到这一点,它需要锁定文件以防止其他访问。 您无法写入当前正在读取的文件(即在foreach
循环内)。
ReadAllLines
将所有行加载到内存中。 然后,您可以随意覆盖原始文件,因为您已经收集了所有需要的信息。
作为替代方案,您可以继续使用ReadLines
,只需确保将结果写入不同的文件即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.