繁体   English   中英

在 C# 中读取和写入现有的 .txt 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM