调用StreamReader后,c# StreamWriter无法工作

本文关键字:工作 StreamWriter StreamReader 调用 | 更新日期: 2023-09-27 18:17:08

我正在尝试在c#中制作投注程序,将用户的数据存储在txt文件中。我从上面读取数据没有问题。然而,我无法覆盖它。

根据我的测试,如果我单独调用StreamWriter部分,覆盖发生得很好。当我将相同的代码放在StreamReader部分之后时,代码将到达Console.WriteLine("reached");行并忽略它之后的所有内容(用户名从未写入控制台中)。没有检测到错误,编译也不会停止。

下面是类代码:
    class Dinero
    {
            private List<string> data;
            private string path = @"C:'Users'yy'Documents'Visual Studio 2015'Projects'ErikaBot'ErikaBot'img'bank_data.txt";
           ...
           some other methods here
           ...
            public void thing(string username, int money)
            {
                FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
                data = new List<string>();
                using (StreamReader sr = new StreamReader(fs))
                {
                    string a = sr.ReadLine();
                    for (int i = 0; a != null; i++)
                    {
                        if (a != username)
                        {
                            data.Add(a);
                        }
                        else i++;
                        a = sr.ReadLine();
                    }
                }
                string b = Convert.ToString(money);
                Console.WriteLine("reached");
                using (StreamWriter tw = new StreamWriter(fs))
                {
                    Console.WriteLine(username);
                    if (data != null)
                    {
                        for (int i = 0; i < data.Count; i++)
                        {
                            tw.WriteLine(data.ElementAt(i));
                        }
                    }
                    string money2 = Convert.ToString(money);
                    tw.WriteLine(username);
                    tw.WriteLine(money2);
                }
            }
        }

调用StreamReader后,c# StreamWriter无法工作

通过处置StreamReader,您也处置了FileStream。要么在StreamWriter的using语句之前重复文件流初始化,要么将后者放在StreamReader的using语句中。