【发布时间】:2017-02-17 00:35:41
【问题描述】:
我正在为 Uni 中的分配做一个项目 Windows 表单,我想搜索一个已经创建的文本文件以匹配名字和姓氏,然后如果名字和姓氏存在,则写一些附加信息。我已经构建了代码并且没有显示错误,但是当我运行并尝试添加信息时,我收到了一个错误,该错误基本上说明了下一个进程(Streamreader writer 无法访问该文件,因为它已被另一个进程使用)我假设这个过程是流式阅读器,我试图对其进行编码以停止阅读无济于事。我正在学习编码的前 3 个月,如果可能的话,我将不胜感激,我已将我的代码的 sn-p 放在下面。
//check if there is a file with that name
if (File.Exists(sFile))
{
using (StreamReader sr = new StreamReader(sFile))
{
//while there is more data to read
while (sr.Peek() != -1)
{
//read first name and last name
sFirstName = sr.ReadLine();
sLastName = sr.ReadLine();
}
{
//does this name match?
if (sFirstName + sLastName == txtSearchName.Text)
sr.Close();
}
//Process write to file
using (StreamWriter sw = new StreamWriter(sFile, true))
{
sw.WriteLine("First Name:" + sFirstName);
sw.WriteLine("Last Name:" + sLastName);
sw.WriteLine("Gender:" + sGender);
}
【问题讨论】:
-
StreamReader 的右括号在哪里。 using 指令将处理流读取器并释放它对文件的锁定,但看起来好像直到打开编写器之后才关闭它?
-
读取你的输入文件,写入一个临时文件,然后用你的临时文件粉碎你的输入文件。
-
你确定这部分代码被执行了吗?因为您似乎正在尝试同时读取和写入同一个文件。 (似乎是个糟糕的主意)
-
您是想将附加数据附加到同一文件的末尾还是名称所在行的末尾?
标签: c# streamreader