c# - 将文本框中的数据写入文本文件

标签 c# streamreader streamwriter

这是我用来写入和读取文本文件的代码。

StreamWriter sw1 = new StreamWriter("DataNames.txt");
sw1.WriteLine(textBox1.Text);
sw1.Close();
StreamWriter sw2 = new StreamWriter("DataNumbers.txt");
sw2.WriteLine(textBox2.Text);
sw2.Close();
FileInfo file1 = new FileInfo("DataNames.txt");
StreamReader sr1 = file1.OpenText();
while (!sr1.EndOfStream)
{
    listBox1.Items.Add(sr1.ReadLine());
}
FileInfo file2 = new FileInfo("DataNumbers.txt");
StreamReader sr2 = file2.OpenText();
while (!sr2.EndOfStream)
{
    listBox2.Items.Add(sr2.ReadLine());
}

问题是,当我单击我的按钮将数据从我的文本框保存到我的文本文件时,会出现一个错误,提示“进程无法访问文件 'C:\xxxx\xxxxxx\xxxxx\xxxx\xxxxx\xxxxx. txt',因为它正被另一个进程使用。”

谁能告诉我为什么会出现这个错误,也许可以帮我解决这个问题

最佳答案

尝试在您的流周围添加一个using 语句以确保它们是Disposed 否则文件仍被锁定到流

例子:

   //Write
    using (StreamWriter sw1 = new StreamWriter("DataNames.txt"))
    {
        sw1.WriteLine(textBox1.Text);
    }

    using (StreamWriter sw2 = new StreamWriter("DataNumbers.txt"))
    {
        sw2.WriteLine(textBox2.Text);
    }


    // Read
    foreach (var line in File.ReadAllLines("DataNames.txt"))
    {
        listBox1.Items.Add(line);
    }

    foreach (var line in File.ReadAllLines("DataNumbers.txt"))
    {
        listBox2.Items.Add(line);
    }

关于c# - 将文本框中的数据写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246216/

相关文章:

c# - NHibernate通过代码映射——复合唯一索引

c# - Html 助手不使用自定义 VirtualPathProvider

c# - 如何在 C# 中检查 control.anchor 属性值?

c# - 如何将 .csv 文件的每一行分隔成一个字符串列表>

c# - StreamReader ThreadSafe问题?可能吗?

c# - StreamReader ReadBlock 卡在二进制文件上

C# Asp.Net 创建文本文件,将其压缩并保存到 Blob - 无需将任何内容写入磁盘

c# - 如何使用 razor 页面在 ASP.Net Core 上将对象从一个页面传递到另一个页面?

c# - 在最后一行之后插入行到 csv 文件

c# - 以尽可能小的努力从 StreamWriter 继承