提问人:TonySoprano 提问时间:7/11/2022 更新时间:7/11/2022 访问量:47
在 C 语言中读取和写入现有 .txt 文件#
Reading and writing to an existing .txt file in C#
问:
这里的初学者, 我在读取和写入现有 .txt 文件时遇到了一些麻烦。 我的总体目标是接收包含方程式的字符串(由数字和 +,-,*,/,(,) 运算符指定),通过我构建的计算器运行这些方程式(参见 Calculate 方法),然后将结果写入同一文件。 假设我的文件包含以下行:
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,但抛出错误,当前流似乎被占用了。
有什么建议吗? 谢谢。
答:
0赞
gunr2171
7/11/2022
#1
从 切换到 。File.ReadLines
File.ReadAllLines
Behind the Scenes 使用 Streams 在你请求时读取文件中的每一行。但是,为了做到这一点,它需要锁定文件,使其无法进行其他访问。您无法写入当前正在读取的文件(即在循环内)。ReadLines
foreach
ReadAllLines
将所有行加载到内存中。然后,您可以自由地覆盖原始文件,因为您已经吸收了所需的所有信息。
作为替代方法,您可以继续使用 ,只需确保将结果写入其他文件即可。ReadLines
评论